F3 (обезжиренный PHP-фреймворк) и добавление к нему структуры MVC/OOP


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

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

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

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

Author: kapa, 2011-01-17

6 answers

Попробуйте f3::route('GET /',array(new IndexController,'home'));

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

 3
Author: stillstanding, 2011-01-20 16:37:11

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

 6
Author: nicholas, 2011-08-12 18:03:07

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

 0
Author: GolezTrol, 2011-01-16 21:34:59

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

 0
Author: OldWest, 2011-01-17 08:31:48

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

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

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

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

Затем добавьте каталог с контроллерами и моделями в АВТОЗАГРУЗЧИК. В качестве представления вы можете использовать - например phptal. Теперь у вас почти готов MVC над F3.

 0
Author: mirekratman, 2015-09-05 01:05:33

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

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

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

/@module = modules\@module\Controller

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

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

 0
Author: GrumpyCrouton, 2018-06-28 18:31:17