3

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

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

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

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

+1

F3 более ** анорексический **, чем * Fat Free *, я бы предложил Slim CodeIgniter – RobertPitt

+0

Спасибо, я проверю его. Я в основном ищу хорошую, простую и легкую инфраструктуру PHP 5.3 MVC, желательно с какой-то хорошей аутентификацией пользователя, уже встроенной для создания небольших сайтов и блогов. Я использую Zend для уровня корпоративного уровня. – Swader

+0

попробуйте google для lightvc..и очень lightwieigt..but im боится, что dosent есть модуль acl – slier

ответ

3

попробовать f3::route('GET /',array(new IndexController,'home'));

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

+0

Это сработало. Однако это вяло. В целях тестирования я разместил эхо в __construct и другое в домашней функции. Эхо эскиза отображается мгновенно, в то время как второе эхо отображает значительную долю секунды. Я думаю, что я просто создаю свой собственный жестоко простой DB + ACL MVC, который можно использовать для простых проектов, все, что я смотрел, кажется вздутым и непрактичным, даже самые простые ... теперь просто найти подходящий вариант практические учебные материалы. Благодаря! – Swader

+1

версии 2.x позволяют использовать этот формат: 'f3 :: route ('GET /', 'IndexController-> home');' – stillstanding

0

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

+0

Я проверю их, ура. Я читал о них обоих, но последний номер сравнения профессионального класса, который я смог найти, был с 2008 года или около того. – Swader

0

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

+1

Я читал о cakePHP, но утверждения о том, что он еще медленнее, чем Zend, довольно согласовываются в аналитических сообщениях, которые мне удалось найти. После простоты и хорошего ACL скорость является для меня приоритетом - мне все равно, что-то еще. – Swader

6

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

0

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

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

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

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

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