1. FrontController (принимает запросы от cli или web)
2. Autoload (настраивается автозагрузка классов).
3. Kernel (создает ряд действий):
1. Инициализируется список Бандлов (Kernel::initializeBundles).
2. Создается Контейнер зависимостей (Dependency Injection Container - Kernel::initializeContainer).
1. Создается контейнер с основными параметрами.
2. Бандлы модифицирует контейнер (тут контейнер еще не полон, некоторые бандлы еще не подгружены, так себе идея: BundleInterface::build).
3. Загружается конфигурация приложения.
4. Контейнер компилируется (CompilerPass):
1. Обрабатываются расширения (CompilerPassInterface).
2. Ссылки на параметры заменяются реальными значениями.
3. Контейнер переводится в режим только на чтение (frozen).
3. Запускаются бандлы.
4. Запускается ядро.

| Command | Info |
|---|---|
| bin/console api:openapi:export --yaml --output=/my/api-platform.yaml | Генерация OpenApi Спецификации |
| bin/console cache:warmup | Прогрев кэша |
| bin/console doctrine:schema:update --dump-sql | Посмотреть отличия схемы бд от сущностей |
| bin/console doctrine:migrations:diff | Создать миграцию на основе изменений в сущностях |
| bin/console make:migration | Создать миграцию на основе изменений в сущностях |
| bin/console doctrine:migrations:migrate --no-interaction | Применить миграции |
| bin/console doctrine:migrations:migrate current-1 | Откатить миграцию |
| bin/console doctrine:schema:validate | Проверить валидность маппинга |
| bin/console doctrine:generate:entities NameOfYouBundle | Обновит Ваши Entity-классы согласно Yml-схемам |
| doctrine:ensure-production-settings | Удалена, см. `orm:ensure-production-settings` в UPGRADE.md Что делала: убеждалась, что доктрина правильно настроена для prod-a среды |
| bin/console lint:container | Проверка типов аргументов, которые инъектятся в сервисы |
| bin/console make | Утилита для создания чего-либо в симфони |
| bin/console about | Информация о системе, симфони и т.п. |
| bin/console config:dump-reference | Просмотр списка бандлов |
| bin/console config:dump-reference security | Просмотр дефолтного конфига для бандла, вместо security можно указать bundle_name |
| bin/console config:dump bundle_name | ^как я понимаю, есть еще одна идентичная команда |
| bin/console debug:config bundle_name | Просмотр нашего конфига для бандла |
| bin/console debug:container --parameters | Просмотр всех определенных параметров (можно добавлять опцию --env=prod чтобы посмотреть например параметры для прода). |
| bin/console debug:dotenv | Посмотреть на то как Symfony парсит .env файлы, но почему-то показываются не все переменные. ВАЖНО: команда доступна если установлен пакет "symfony/dotenv", который я не рекомендую из-за проблем в его работе. |
| bin/console debug:dotenv --env=test | При этом можно указать окружение и увидеть приоритет значений (если в нескольких файлах указаны одинаковые переменные). |
| bin/console debug:container --env-vars | Просмотр переменных окружения |
| bin/console debug:container --env-vars foo | filter the list of env vars by name |
| bin/console debug:container --env-var=FOO | show all the details for a specific env var |
| bin/console debug:container --tag=data_collector | Список сервисов помеченых тегом "data_collector". Симфони поставляется с несколькими коллекторами, которые предоставляют информацию о: request, the logger, the routing, the cache, etc. |
| bin/console debug:container some_service_name | Пример нахождения интерфейса/класса по Service ID |
| bin/console debug:container --show-hidden | Просмотр только приватных сервисов (зарегистрированных) |
| bin/console debug:container 'App\Service\Mailer' --show-arguments | Просмотр аргументов класса |
| bin/console debug:container --env=test | Просмотр контейнера в тестовом окружении |
| bin/console debug:autowiring | Просмотр сервисов которые возможно использовать для autowiring-а |
| bin/console debug:router | Список правил роутинга |
| bin/console router:match /lucky/number/8 | Найти имя роута по URI |
| bin/console debug:translation | Список переводов |
| bin/console cache:pool:list | Список pull-ов кэша |
| bin/console cache:pool:clear my_cache_pool | Очистить один pull |
| bin/console cache:clear | Очиститель системного кэша |
| bin/console cache:pool:clear cache.app_clearer | Очистить все pull-ы |
| bin/console cache:pool:clear cache.global_clearer | Очистить все кеши везде - очищает все элементы кэша в каждом пуле |
| bin/console security:encode | Создание хэша для пароля |
| bin/console security:hash-password | Создание хэша для пароля (еще одна, более новая) |
| bin/console debug:autowiring client | Переменные, которые можно использовать в DI (autowiring) |
| bin/console debug:event-dispatcher | Информация о событиях и подписчиках |
| bin/console debug:event-dispatcher kernel.exception | |
| bin/console debug:event-dispatcher kernel | matches "kernel.exception", "kernel.response" etc. |
| bin/console debug:event-dispatcher Security | matches "Symfony\Component\Security\Http\Event\CheckPassportEvent" |
| bin/console debug:event-dispatcher --dispatcher=security.event_dispatcher.main | получить зарегистрированных прослушивателей для определенного диспетчера событий |
| bin/console app:my-command --profile -vvv | показать ссылку на профайл + информацию о расходе памяти |
Интересные моменты:
Событие kernel.view срабатывает только когда экшен контроллера возвращает не объект Response:
if (!$response instanceof Response) {Удачки.