- Понять принципы построения роутинга в проектах с использованием Symfony
- Понять принципы устройства контроллеров
- Инициализация контроллера
- Сопоставление аргументов
- Двойная диспетчиризация
- Форкнуть и склонировать проект
- Выполнить задания не внося изменения в файлы, кроме указанных
- Создавать дополнительные файлы разрешено
- Отправить пулл-реквест с решением задачи
- Участвовать в обсуждении своего и чужих пулл-реквестов
Запрещено использование следующих компонентов и бандлов (в целях обучения):
FrameworkBundle
Symfony/Routing
Файлы, которые всегда можно изменять:
composer.json
- возможно управление автолоадингомDepdendencyInjection/ServiceCompilerPass.php
- можно изменять имплементацию методов
Файлы, которые нельзя изменять:
MiniKernel.php
web/web.php
Common/*
Для размещения кода используйте namespace BankiruSchool\Routing\Tasks
Сервер должен запускаться командой php -S 0.0.0.0:8000 web/web.php
Добейтесь чтобы контроллеры отвечали на GET
запросы
(только на них, ответ контроллера на другие методы будет считаться ошибкой),
по путям вида taskN/task.check?term=some-param-value
В ответ контроллер должен выдать ответ 200 с телом some-param-value
Имплементация большей части контроллеров уже подготовлена, в ходе выполнения задания вам нужно лишь корректно их сконфигурировать
Подключите глобальную функцию action
из файла Common/functionController.php
в качестве контроллера
Подключите статический метод action
класса StaticController
в качестве контроллера
Подключете метод action
класса BasicController
в качестве контроллера
Расширьте и доопределите контроллер AbstractController
таким образом, чтобы
можно было использовать его в качестве контроллера используя только инстанс класса-наследника
Подключите метод action
класса DispatchedController
в качестве контроллера
- https://symfony.com/doc/current/reference/events.html
- https://symfony.com/doc/current/components/http_kernel.html
- https://symfony.com/doc/current/create_framework/front_controller.html
- https://symfony.com/doc/current/controller/argument_value_resolver.html
- https://github.com/symfony/symfony/blob/master/src/Symfony/Component/HttpKernel/HttpKernel.php#L123