Я загрузил последнюю стабильную версию Symfony (3.3.3), и при запуске у меня есть ошибка:
Attempted to call an undefined method named "getParameter" of class "AppBundle\Controller\DefaultController".
Это:
'base_dir' => realpath($this->getParameter('kernel.project_dir')).DIRECTORY_SEPARATOR,
До версии 3.3.3 расширены контроллеры Symfony
Symfony \ Bundle \ FrameworkBundle \ Controller \ Controller.php
Теперь распространяется:
Symfony \ Bundle \ FrameworkBundle \ Controller \ AbstractController \ AbstractController.php
Итак … Как я могу получить данные из контейнера? В документации (версии 3.3 и 4.0) контроллер расширяет Controller, а не AbstractController.
Если я сменил приложение AbstractController на приложение Controller, он будет хорошо работать, но должен ли я это изменить?
Они уже вернули изменение в стандартном выпуске symfony, поэтому я бы сказал, что возвращение к Controller
вместо AbstractController
– это путь.
Сегодня пришла версия 3.3.4, которая исправляет эту и другие проблемы. Вот новость: http://symfony.com/blog/symfony-3-3-4-released. Чтобы исправить ошибку, вы должны обновить composer
composer update
Вы можете создать проект с рабочей версией с помощью этой команды: php symfony new project_name 3.3.2
Текущая версия теперь не работает.