Дія

Кожен Контролер однієї дії представлений спеціальним класом або закриттям.

Дія робить лише такі речі:

  • збирає вхідні дані із запиту HTTP (за потреби)
  • викликає Домен з цими входами (якщо потрібно) і зберігає результат
  • будує відповідь HTTP (зазвичай з результатами виклику домену).

Отже, вся інша логіка, включаючи всі форми перевірки вхідних даних, обробки помилок тощо, витісняється з Дії в Домен (для проблем логіки домену) або візуалізатора відповіді (для питань логіки презентації).

Відповідь може бути надана в HTML (наприклад, із Twig) для стандартного веб-запиту; або це може бути щось на зразок JSON для запитів RESTful API.

Примітка: Закриття (функції) як обробників маршрутизації є досить «дорогими», оскільки PHP повинен створювати всі закриття для кожного запиту. Використання назв класів є більш легким, швидким та кращим за масштабами для великих програм.

Візуалізація шаблону Twig

Написання JSON у відповідь

Замість того, щоб щоразу викликати json_encode, ви можете використати метод json () відповідача, щоб відтворити відповідь.

Відповідач

Відповідно до ADR, має бути відповідач за кожну дію. У більшості випадків загальний репондер (див. Responder.php) досить хороший. Звичайно, ви можете додати спеціальні класи реагування та перенести туди всю логіку презентації. Додатковий клас відповідача мав би сенс при побудові рівня трансформації для виведення складних даних (json або xml). Це допомагає відокремити логіку презентації від логіки домену.

Запит та відповідь

Короткий огляд циклу запиту/відповіді:

slim

Запити проходять через стек проміжного програмного забезпечення (вхід і вихід):

Запит> Фронтальний контролер> Маршрутизація> Проміжне програмне забезпечення> Дія> Проміжне програмне забезпечення> Відповідь

Ось повністю детальний потік запитів HTTP і назад до відповіді: