
Від пакетів та ядра до контролера й наслідування - відшукайте для себе тлумачення основних термінів та понять у Symfony у рубриці The Symfony Glossary.
Acme
Acme - це вигадане ім'я компанії, що використовується як зразок у прикладах та в документації Symfony. Його застосовують там, де б Ви гіпотетично могли використати власну назву свого підприємства чи проекту (наприклад, у коді-зразку книг по Symfony можна часто зустріти Acme\BlogBundle).
Action
Дія (action) - це PHP функція чи метод, що виконується, коли, скажімо, встановлюється у відповідність певний маршрут. В цьому випадку термін “дія” є синонімом до “контролера”, хоча контролер - це поняття ширше, адже воно також стосується цілого PHP класу, що включає декілька дій. Детальніше про це читайте у розділі "Контролер".
Application
Додаток - це директорія, яка містить налаштування певної вибірки пакетів.
Asset
Ресурс - це будь-яка статична складова веб-додатку, яку не можна “виконати”, для прикладу, CSS, JavaScript, зображення чи відео. Ресурси можна розміщувати у директорії web проекту напряму або з пакета з використанням консольного завдання assets:install.
Bundle
Пакет - це директорія, що містить ряд файлів (зокрема, PHP файли, таблиці стилів, JavaScript, зображення тощо) для реалізації одного елементу функціоналу - “feature” чи, по-народному, “фічі” на кшталт блогу, форуму тощо. У Symfony, (практично) все зберігається у пакетах. Детальніше з пакетами ознайомитеся у розділі "Створення сторінок в Symfony".
Controller
Контролер - це функція PHP з описом усієї необхідної логіки для повернення об’єкта-відповіді (Response) з конкретної сторінки. Як правило, маршрут прив'язується до контролера, який використовує інформацію із запиту для обробки інформації, здійснення дій та, врешті решт, для складання і повернення об’єкта-відповіді (Response).
Dependency Injection
Впровадження наслідування - це доволі популярна у фреймворці Symfony схема дизайну. Вона заохочує до використання такої архітектури додатку, яка би по мінімуму залежала від своїх своїх складових, була гнучкою, легко розширювалася й підтримувалася. В основі роботи даної схеми лежить можливість включення об’єктів (які ﹣ми ще називаємо сервісами) до інших об’єктів, приймаючи їх за параметри. В залежності від методу впровадження такого наслідування для двох об’єктів існують різні рівні взаємозв’язків. Шаблон впровадження наслідування часто пов’язують з іншим типом об’єктів: Сервіс Контейнером.
Distribution
Дистрибутив - це набір компонентів Symfony, вибірка пакетів, розумна й продумана структура директорій, налаштування по замовчуванню та додаткова система налаштувань.
Environment
Середовище - це рядок (наприклад, prod чи dev), що відповідає специфічному набору налаштувань. Один і той же додаток можна запускати на одному й тому ж комп'ютері, використовуючи різні середовища. Назагал це дуже зручно, так як кожен окремий додаток може мати власне dev середовище для усунення багів і prod середовище, зарання оптимізоване для отримання максимальної швидкості роботи додатку.
Firewall
У Symfony фаєрвол (який ми ще звикли називати мережевим екраном) аж ніяк не стосується мережевої роботи. Натомість він визначає механізми автентифікації (тобто, він керує процесом встановлення ваших користувачів), причому або для усього додатку, або лише для його частини. Детальніше див. розділ "Безпека".
Front Controller
Фронт контролер - це короткий PHP скрипт, розміщений у web директорії проекту. Як правило, виконання усіх запитів здійснюється через один і той же фронт контролер, робота якого полягає у завантаженні додатку Symfony.
Сервіс - це загальний термін для будь-якого PHP об’єкта, що виконує спеціальне завдання. Зазвичай сервіс використовується “глобально”, скажімо, як об’єкт для з’єднання з базою даних, або як об’єкт, що розсилає електронні повідомлення. В Symfony сервіси часто налаштовуються та витягуються з сервісного контейнера. Додаток, що містить багато роз’єднаних сервісів, побудований на сервісно-орієнтованій архітектурі.
Сервіс контейнером, також відомий як Сервіс впровадження наслідування - це спеціальний об’єкт, що керує створенням екземплярів класу сервісів у додатку. Розробнику не потрібно безпосередньо створювати сервіс, адже через налаштування він може “навчити” контейнер створювати сервіси самостійно. Севіс контейнером - ідеальний варіант для лінивих розробників, адже він дає можливість створювати сервіси та управляти ними майже в автоматичному режимі (див. розділ Сервіс контейнером).