GitHub - інтеграція PHP-DISlim-Bridge PHP-DI з фреймворком Slim

Інтеграція PHP-DI з Slim

php-di

Цей пакет налаштовує Slim для роботи з контейнером PHP-DI.

PHP-DI як контейнер

Найбільш очевидна відмінність від установки Slim за замовчуванням полягає в тому, що ви будете використовувати PHP-DI як контейнер, що має наступні переваги:

  • автопровід
  • потужний конфігураційний формат
  • підтримка модульних систем
  • .

Якщо ви хочете дізнатись більше про все, що може запропонувати PHP-DI, подивіться на її введення.

Контролери як послуги

Хоча ваші контролери можуть бути простими закриттями, ви також можете запишіть їх як класи і попросіть PHP-DI створити їх лише тоді, коли вони викликані:

Потім залежності можна вводити у ваш контролер за допомогою автоматичного підключення, конфігураційних файлів PHP-DI або навіть анотацій.

За замовчуванням контролери Slim мають чіткий підпис: $ request, $ response, $ args. Міст PHP-DI пропонує більш гнучку та зручну для розробників альтернативу.

Параметри контролера можуть бути будь-якими з таких речей:

  • запит або відповідь (параметри повинні називатися $ request або $ response)
  • заповнювачі маршруту
  • атрибути запиту
  • послуги (вводиться підказкою типу)

Ви також можете змішувати всі ці параметри разом. Вони збігатимуться за пріоритетом у порядку, наведеному вище у списку.

Запит або введення відповіді

Ви можете ввести запит або відповідь у параметри контролера за іменем:

Як бачите, порядок параметрів не має значення. Це дозволяє пропустити введення $ -запиту, якщо це не потрібно, наприклад.

Маршрут введення заповнювача

Як ви можете бачити вище, URL-адреса маршруту містить заповнювач імені. Просто додавши параметр з такою ж назвою до контролера, PHP-DI буде безпосередньо вводити його.

Запит на введення атрибута

Як ви можете бачити вище, проміжне програмне забезпечення встановлює атрибут name. Просто додавши параметр з такою ж назвою до контролера, PHP-DI буде безпосередньо вводити його.

Щоб вводити служби у ваші контролери, ви можете записати їх як класи. Але якщо ви хочете написати мікропрограму, використовуючи закриття, вам також не доведеться відмовлятися від введення залежності.

Ви можете вводити послуги, наводячи їх:

Примітка: ви можете вводити лише ті послуги, які ви можете ввести підказку і які PHP-DI може надати. Ін’єкція type-hint проста, вона просто вводить результат $ container-> get (/ * клас, на який натякають type * /) .