Symfony4: загрузка приборов из комплекта - PullRequest
0 голосов
/ 01 мая 2020

Я пытаюсь добавить приборы из пакета в приборы в моем приложении. Приборы находятся в моем подкаталоге в папке lib/MyCompany/MyBundle/Fixtures.

Пример:

// MyCompany/MyBundle/Fixtures/SpecialFixtures.php
<?php

namespace MyCompany\MyBundle\Fixtures;

use Doctrine\Bundle\FixturesBundle\Fixture;
use Doctrine\Common\Persistence\ObjectManager;

class SpecialFixtures extends Fixture
{
    public function load(ObjectManager $manager)
    {
    }
}

Затем я использую этот прибор в своем приложении как зависимость от другого прибора

// src/Fixtures/DependentFixtures.php
<?php

namespace App\Fixtures;

use MyCompany\MyBundle\Fixtures\SpecialFixtures;
use Doctrine\Common\Persistence\ObjectManager;
use Doctrine\Bundle\FixturesBundle\Fixture;
use Doctrine\Common\DataFixtures\DependentFixtureInterface;

class DependentFixtures extends Fixture implements DependentFixtureInterface
{
    public function load(ObjectManager $manager)
    {
    }

    public function getDependencies()
    {
        return array(
            SpecialFixtures::class,
        );
    }
}

Мой наивный подход к использованию команды и ожиданию того, что она работает, как написано в документах

./bin/console doctrine:fixtures:load

, терпит неудачу с

Fixture "MyCompany\MyBundle\Fixtures\SpecialFixtures" was declared as a dependency, but it should be added in fixture loader first.

Попытка добавить каталог fixtures в функцию загрузки расширения также не работает, так как служба doctrine.fixtures.loader не определяется во время загрузки класса расширения пакета. Хотя эта служба отображается в списке служб в ./bin/console debug:container.

Как я могу сказать, что загрузчик приборов должен был найти дополнительные приборы, которые управляются внутри пакета?

Любая помощь будет очень благодарны.

Приветствия

Замечание : Сильно отредактировано после первого комментария.

...