F3 (Fat-Free PHP Framework) и добавление в него структуры MVC / OOP - PullRequest
3 голосов
/ 17 января 2011

Этот вопрос касается F3 (Php Fat Free Framework), на который я наткнулся, ища простую, быструю и безопасную среду, подходящую для небольших веб-сайтов и / или блогов.Для меня было важно то, что у фреймворка есть своего рода ACL и простота.Если вы знаете какие-либо хорошие альтернативы, я весь слух.Между тем, вопрос о F3 для тех, кто имел опыт работы с ним:

Возможно ли иметь приличную структуру ООП MVC с F3?Поскольку маршруты типа F3::route('GET /',':indexController|home'); не работают, как можно реализовать правильную структуру MVC?Я знаю, что могу установить статический метод home, а затем выполнить F3::route('GET /','indexController::home');, но это кажется ненужным усложнением и излишним, и игнорирует метод construct, который мне нужно установить для каждого контроллера отдельно.В моем файле index.php я хотел бы иметь только маршруты к различным контроллерам и действиям, а остальная логика будет обрабатываться на этих контроллерах.Каков наилучший способ приблизиться к этому?

Большое спасибо

Редактировать: Я также хотел бы услышать некоторое мнение о Yii, я вижу, что оно высоко оценивается на PHPFrameworks.com

Ответы [ 6 ]

6 голосов
/ 12 августа 2011

F3 не раздувается с любой встроенной архитектурой MVC, это просто фронт-контроллер. И в этом весь смысл. Вместо того, чтобы заставлять вас использовать определенный набор инструментов, вы можете реализовать все, что захотите. Например, если вам не нравятся плагины Axon и Template F3, вы можете использовать Red Bean ORM для управления вашими моделями и Smarty для построения ваших представлений. F3, по своей сути, просто направляет URL-адреса на ваши контроллеры и остается в стороне.

3 голосов
/ 20 января 2011

try f3::route('GET /',array(new IndexController,'home'));

, который вызовет ваш конструктор и также выполнит метод home ().f3 не продвигает никакого «правильного» подхода MVC.вместо этого у вас есть MVC-подход "от руки".

0 голосов
/ 28 июня 2018

Я создал проект, который я называю Grump-Free-Framework, который делает именно это.

Вы можете проверить проект на github .

Этоиспользует простую картографическую маршрутизацию для вызова контроллеров в полностью модульной структуре, каждый модуль имеет свой собственный MVC.

/@module = modules\@module\Controller

Где вы можете создавать новые модули в папке app/modules/, которые содержат контроллер, опционально столько моделейсколько хотите, и столько представлений, сколько хотите.

Существует также другой проект, представляющий собой несколько базовых модулей, например модуль входа в систему, который вы можете найти в файле readme проекта grump-free-framework..

0 голосов
/ 05 сентября 2015

Вы также можете переместить определение маршрутов в отдельный файл конфигурации с такой структурой примера (rout.ini):

[routes]
GET|POST / = IndexController->indexAction
GET|POST @Index: /@lang = IndexController->langAction

и включите его в конфигурацию F3:

\F3::config('routes.ini');

Затем добавьте каталог с контроллерами и моделями в AUTOLOADER. В качестве представления вы можете использовать, например, PHPTal . Теперь у вас почти готов MVC над F3.

0 голосов
/ 17 января 2011

Похоже, поездка в пекарню не помешает.CakePHP имеет превосходное ядро ​​ACL и может быть настолько легким, насколько вы хотите, чтобы оно имхо было.

0 голосов
/ 17 января 2011

Если вы хотите MVC, зачем использовать F3.Лучше использовать CodeIgniter или Kohana (если вы получили PHP 5).Они также довольно легкие и построены для структуры MVC.

...