我知道这个问题已经被问过多次:
- Symfony 3.4 和 Fixtures Bundle 捆绑版本 3.0 存在问题 https://stackoverflow.com/questions/50252845/symfony-3-4-and-fixtures-bundle-issue-with-bundle-version-3-0
- Symfony 3.4.0 找不到任何要加载的固定装置服务 https://stackoverflow.com/questions/47613979/symfony-3-4-0-could-not-find-any-fixture-services-to-load?rq=1
- Symfony Doctrine 找不到要加载的装置 https://stackoverflow.com/questions/47661500/symfony-doctrine-cant-find-fixtures-to-load
- 找不到任何要加载的固定装置服务 - Symfony 3.2 https://stackoverflow.com/questions/49328980/could-not-find-any-fixture-services-to-load-symfony-3-2
以上这些实际上都没有帮助我。也就是说,这是我的配置:
Composer.json
"require": {
"php": ">=7.0",
"doctrine/doctrine-bundle": "^1.6",
"doctrine/orm": "^2.5",
....
},
"require-dev": {
....
"doctrine/doctrine-fixtures-bundle": "^3.0",
}
我正在使用公司开发的捆绑包,该捆绑包在上述最后一个版本之前一直运行良好(最后测试和工作配置有 PHP 5.6、Doctrine 捆绑包 ^1.6、Doctrine orm ^2.5、fixture 捆绑包 ^3.0)。
该捆绑包内有一些固定装置供应商名称/捆绑名称/DataFixtures/ORM,所有灯具都有以下声明:
Class MyFixture1 extends Fixture implements OrderedFixtureInterface,FixtureInterface, ContainerAwareInterface{
...
}
在这个捆绑包中有一个 services.yml 文件,通过以下方式加载:
public function load(array $configs, ContainerBuilder $container)
{
$configuration = new Configuration();
$config = $this->processConfiguration($configuration, $configs);
$loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
$loader->load('services.yml');
}
VendorName/BundleName/Resources/config/Services.yml 我尝试了不同的配置:
services:
_defaults:
autowire: true
autoconfigure: true
public: false
VendorName\BundleName\:
resource: '../../*'
# you can exclude directories or files but if a service is unused, it's removed anyway
exclude: '../../{Entity,Repository,Tests,EventListener}'
我尝试在 DataFixtures 中明确搜索:
VendorName/BundleName\DataFixtures\:
resource: '../../src/VendorName/BundleName/DataFixtures'
tags: ['doctrine.fixture.orm']
甚至手动配置服务:
VendorName\BundleName\DataFixtures\ORM\MyFixture1:
class: VendorName/BundleNamee\DataFixtures\ORM\MyFixture1
tags: ['doctrine.fixture.orm']
但不幸的是它不断给出错误。知道我做错了什么吗?很久以前,可以手动指定要查看的夹具命令,但现在不再可能了
更新1:抱歉,大家忘记指出错误消息:“找不到任何要加载的固定装置服务”