Когда я пытаюсь запустить функциональный тест на Symfony 4, я получаю следующее:
The routing file "{__PATH__}config/routes/admin.yaml" contains unsupported keys for "admin_home": "controller". Expected one of: "resource", "type", "prefix", "path", "host", "schemes", "methods", "defaults", "requirements", "options", "condition", "ControllerTest"
Я не понимаю почему, потому что моя конфигурация маршрутизации соответствует официальной документации:
admin_home:
path: ''
controller: App\Controller\Admin\HomeController::home
Официальный документ: http://symfony.com/doc/current/routing.html (во вкладках YAML пакет аннотаций не устанавливал). Где «контроллер» - это поддерживаемый ключ.
Я установил пакет PHPUnit composer require --dev symfony/phpunit-bridge, затем запустил ./vendor/bin/simple-phpunit.
Действительно, не работает. Я до сих пор не понимаю, почему, поскольку я предполагаю, что раньше использовал эти файлы маршрутизации.
Я проверил отступы безуспешно. Работает если перейду на SF3 записываю defaults: { _controller: App\Controller\Admin\HomeController::home }
И отладка bin / console: роутер показывает ту же ошибку? Честно говоря, я не вижу проблемы. Вы уверены, что смотрите нужный файл? Может быть, сломайте новый скелет и ничего не сделайте, кроме как добавить свой файл маршрута. Сообщение об ошибке действительно очень странное.




Это новый синтаксис, введено в Symfony 3.4 / 4.0.
В более старых версиях следует использовать:
admin_home:
path: ''
defaults: { _controller: App\Controller\Admin\HomeController::home }
Какие требования? Как сказано в вопросе, я использую Symfony 4 "symfony/framework-bundle": "^4.0",
@GuillaumeM и symfony/routing? (composer show symfony/routing)
versions : * v4.0.6. Также есть "конфликты" частей с 3 строчками: symfony/config <3.4; symfony/dependency-injection <3.4, symfony/yaml <3.4. Это проблема?
Поскольку мне не удалось воспроизвести проблему в новом проекте даже с тем же файлом composer.json, я попытался удалить каталог поставщика.
Оно работает.
Не стесняйтесь обновлять этот ответ. Я не могу объяснить, почему это работает, хотя команды композитора ничего не сделали.
Это был новый проект для начала или вы пытались обновить существующий старый? Composer замечательный, но иногда обновление между основными версиями может привести к забавным проблемам. А иногда просто удаление всего каталога кеша работает как по волшебству.
Отладка bin / console: маршрутизатор показывает маршрут? И просто для усмешки измените путь на что-то вроде '/ admin'. Не уверен, что делает маршрут с пустым путем, хотя не думаю, что это проблема. Дважды проверьте свой отступ.