Symfony 3.3: используйте php-файл внутри пакета для загрузки маршрутов, ожидающих класса

В мой проект Symfony версии 3.3 в файле app/config/routing.yml я поместил:

AppBundle:
    resource: '@AppBundle/Resources/config/routing.php'
    prefix: /
    type: 'php'

А на src/AppBundle/Resources/config/routing.php поставил следующее:

use Symfony\Component\Routing\RouteCollection;
use Symfony\Component\Routing\Route;

$collection = new RouteCollection();
$collection->add('blog_list', new Route('/blog', array(
    '_controller' => 'AppBundle:Blog:list',
)));
$collection->add('blog_show', new Route('/blog/{slug}', array(
    '_controller' => 'AppBundle:Blog:show',
)));

return $collection;

Но я получаю следующую ошибку:

Автозагрузчик ожидал, что класс "AppBundle\Resources\config\routing" будет определен в файле "/home/pcmagas/Kwdikas/myblog/vendor/composer/../../src/AppBundle/Resources/config/routing.php" . Файл был найден, но класса в нем не было, имя класса или пространство имен, вероятно, имеют опечатку в /home/pcmagas/Kwdikas/myblog/app/config/services.yml (который импортируется из "/home/pcmagas/ Kwdikas/myblog/app/config/config.yml").

Вы знаете, ребята, как загрузить маршруты через «внешний» файл php? Я имею в виду точно так же, как вы загружаете через yml маршруты, чтобы загрузить их через php.

Насколько мне известно, согласно: http://symfony.com/doc/current/routing.html вы можете использовать файл php для загрузки маршрутов.


person Dimitrios Desyllas    schedule 12.10.2017    source источник
comment
Версия Симфони? То, что у вас есть, похоже, должно работать.   -  person Cerad    schedule 12.10.2017
comment
Это написано в заголовке   -  person Dimitrios Desyllas    schedule 12.10.2017
comment
Я забыл, что уже ответил на это: stackoverflow.com/questions/46099282/   -  person Cerad    schedule 14.10.2017


Ответы (1)


Возможно, это потому, что у вас нет пространства имен в файле routing.php.

Вы должны поставить в начале файла:

namespace AppBundle\Resources\config;
person Fabien Salles    schedule 12.10.2017
comment
Nope все еще просит класс. - person Dimitrios Desyllas; 12.10.2017
comment
Возможно, вы можете настроить такие php-маршруты только в файле по умолчанию (app/config/routing.yml|php), и единственным решением для добавления других маршрутов в php является создание загрузчик пользовательского маршрута - person Fabien Salles; 12.10.2017
comment
@FabienSalles - Рискуя показаться резким, возможно, вам следует перестать гадать, начать читать документы и провести небольшое тестирование. - person Cerad; 13.10.2017
comment
В документах есть только примеры для файла app/config/routing.* configure в config.yml. Так что все в порядке. я уже читала! - person Fabien Salles; 13.10.2017