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

StackOverflow https://stackoverflow.com/questions/4708191

Вопрос

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

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

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

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

Это было полезно?

Решение

пытаться f3::route('GET /',array(new IndexController,'home'));

Это позвонит вашему конструктору и также выполнит метод Home (). F3 не продвигает ни одного «правильного» подхода MVC. Вместо этого у вас есть подход MVC «от руки».

Другие советы

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

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

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

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

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

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

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

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

Я создал проект, который я называю безжалостной работой, который делает именно это.

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

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

/@module = modules\@module\Controller

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

Существует также еще один проект, который представляет собой всего несколько основных модулей, например, модуль входа в систему, который вы можете найти в чтении проекта без грузов, не содержащей грузов.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top