Я прочитал PSR-15 от PHP-фиг (Обработчик запросов HTTP-сервера) и интересно, когда вызывается действие (действие контроллера или закрытие).
При обработке через все промежуточные программы действие должно вызываться после прохождения всех промежуточных программ. После действия все промежуточные программы снова передаются изнутри наружу (как описано в Гид пользователя от Slim Framework).
Я просматривал код от Laravel на GitHub, но не могу понять, как они вызывают действие, а затем снова пересекают все промежуточные программы.
это ответ говорит мне, что Slim добавляет себя в стек промежуточного ПО. Я думаю, тогда он выполняет действие как-то. Но Слим использует двойной проход.
Как стек промежуточного программного обеспечения и его выполнение выглядят за один проход (как описано в PSR-15) и вызывают действие между всеми промежуточными программами?
Я начал добавлять контроллеры в качестве промежуточного программного обеспечения. Чтобы это работало, RequestHandler должен иметь возможность принимать новые промежуточные программы для добавления. И мой маршрутизатор выполняет работу по назначению соответствующего промежуточного программного обеспечения. Таким образом, я также могу назначить более одного действия на маршрут.
Других решений пока нет …