В работе мы используем фреймворк под названием 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. Я постараюсь сделать свои собственные документы и разместить их в этом блоге для других заблудших душ, находящихся в том же положении, что и я.