В работе мы используем фреймворк под названием Slimframework, который является действительно классным фреймворком на PHP, который не так уж много делает, но это своего рода главный аргумент в пользу этого фреймворка.
Недавно была выпущена Slimframework версии 4, и мне пришлось начать копаться в документации, чтобы попытаться выяснить, как обновить одно из моих приложений с Slim Framework версии 3.
Эта статья является частью первой из моей серии: «Отсутствующие документы Slimframework v3».
Сохранение поведения в вашем коде, написанном для Slim framework v3:
Возможно, вы использовали следующую настройку в файле settings.php, когда еще существовала Slim версии 3.
<?php return [ 'settings' => [ ... "determineRouteBeforeAppMiddleware" => true, ...
Вам нужно будет сделать следующее, чтобы поддерживать такое же поведение в Slim версии 4:
Если вы использовали defineRouteBeforeAppMiddleware, вам нужно добавить промежуточное ПО Middleware \ RoutingMiddleware в свое приложение непосредственно перед вызовом run (), чтобы поддерживать предыдущее поведение .
Это упомянуто здесь: http://www.slimframework.com/docs/v4/middleware/routing.html
Что такое промежуточное ПО маршрута?
Промежуточное ПО может быть присоединено к маршруту или к группе маршрутов. Это новая функция в версии 4. Вы можете прочитать об этом здесь: http://slim-website.lgse.com/docs/v4/objects/routing.html#route-middleware
Вот несколько примеров, как это сделать на самом деле: http://slim-website.lgse.com/docs/v4/concepts/middleware.html
Вот хороший пример:
... $app = AppFactory::create(); // Add Middleware On App $app->add(new ExampleMiddleware()); // Add Middleware On Route $app->get('/', function () { ... })->add(new ExampleMiddleware()); // Add Middleware On Group $app->group('/', function () { ... })->add(new ExampleMiddleware()); ...
Как работает маршрутизация в версии 4 slim framework?
Согласно этой странице: http://www.slimframework.com/docs/v4/middleware/routing.html
«Маршрутизация реализована как промежуточное программное обеспечение. Мы по-прежнему используем FastRoute в качестве маршрутизатора по умолчанию, но он не связан с ним прочно. Если вы хотите реализовать другую библиотеку маршрутизации, вы могли бы создать свои собственные реализации интерфейсов маршрутизации ».
На другой странице документации упоминается следующее:
Маршрутизатор Slim Framework построен на основе компонента Fast Route, и он удивительно быстрый и стабильный. Хотя мы используем этот компонент для выполнения всей нашей маршрутизации, ядро приложения полностью отделено от него, а интерфейсы созданы, чтобы подготовить почву для использования других библиотек маршрутизации . Http://dev.slimframework.com/docs/v4/objects/routing.html
Смущенный?
Да, я тоже немного запутался прямо сейчас и просматривая всю документацию для v4, я не могу найти таких же подробных примеров для создания приложения, как они были для v3. Я постараюсь сделать свои собственные документы и разместить их в этом блоге для других заблудших душ, находящихся в том же положении, что и я.