在 Symfony 3.4 应用程序中排除由作曲家自动加载的数据装置
Excluding Data Fixtures for being autloaded by composer in a Symfony 3.4 application
我在开发环境中使用 doctrine/data-fixtures
并且要求如下:
composer.json:
"autoload": {
"psr-0": {
"": "src/",
"SymfonyStandard": "app/"
},
"classmap": [ "app/AppKernel.php", "app/AppCache.php" ]
},
"require-dev": {
"symfony/maker-bundle": "^1.8",
"phpunit/phpunit": "^7.0",
"doctrine/data-fixtures": "dev-rfc1872 as v1.2.1",
"doctrine/doctrine-fixtures-bundle": "^3.0"
},
在我的 Symfony 3.4 应用程序中,我的数据装置位于 /src/AppBundle/DataFixtures/ORM/*.php
。
当我 运行 作曲家时,它又 运行 是一个 Symfony cache:clear 我得到以下错误:
[RuntimeException]
An error occurred when executing the "'cache:clear --no-warmup'"
command:
In DefinitionErrorExceptionPass.php line 37:
While discovering services from namespace "AppBundle\", an error was thrown
when processing the class "AppBundle\DataFixtures\ORM\LoadCourseData": "Cl
ass Doctrine\Common\DataFixtures\AbstractFixture not found".
我想将 DataFixtures 命名空间排除在自动加载之外,但我找不到这样做的方法。
我认为您不想将数据固定装置排除在自动加载之外,因为它们是有效的 PHP 类.
此错误来自 Symfony 的自动装配功能。所以我假设你确实在使用自动装配。
您应该从自动装配发现中获取数据装置,这可以在 services.yml
中使用 exclude
选项完成。
假设你有类似的东西(默认情况下应该有):
AppBundle\:
resource: '../../src/AppBundle/*'
exclude: '../../src/AppBundle/{Entity,Repository}'
您需要做的就是将 DataFixtures
命名空间添加到 exclude
:
AppBundle\:
resource: '../../src/AppBundle/*'
exclude: '../../src/AppBundle/{Entity,Repository,DataFixtures}'
中阅读更多相关信息
我在开发环境中使用 doctrine/data-fixtures
并且要求如下:
composer.json:
"autoload": {
"psr-0": {
"": "src/",
"SymfonyStandard": "app/"
},
"classmap": [ "app/AppKernel.php", "app/AppCache.php" ]
},
"require-dev": {
"symfony/maker-bundle": "^1.8",
"phpunit/phpunit": "^7.0",
"doctrine/data-fixtures": "dev-rfc1872 as v1.2.1",
"doctrine/doctrine-fixtures-bundle": "^3.0"
},
在我的 Symfony 3.4 应用程序中,我的数据装置位于 /src/AppBundle/DataFixtures/ORM/*.php
。
当我 运行 作曲家时,它又 运行 是一个 Symfony cache:clear 我得到以下错误:
[RuntimeException]
An error occurred when executing the "'cache:clear --no-warmup'" command:
In DefinitionErrorExceptionPass.php line 37:While discovering services from namespace "AppBundle\", an error was thrown when processing the class "AppBundle\DataFixtures\ORM\LoadCourseData": "Cl ass Doctrine\Common\DataFixtures\AbstractFixture not found".
我想将 DataFixtures 命名空间排除在自动加载之外,但我找不到这样做的方法。
我认为您不想将数据固定装置排除在自动加载之外,因为它们是有效的 PHP 类.
此错误来自 Symfony 的自动装配功能。所以我假设你确实在使用自动装配。
您应该从自动装配发现中获取数据装置,这可以在 services.yml
中使用 exclude
选项完成。
假设你有类似的东西(默认情况下应该有):
AppBundle\:
resource: '../../src/AppBundle/*'
exclude: '../../src/AppBundle/{Entity,Repository}'
您需要做的就是将 DataFixtures
命名空间添加到 exclude
:
AppBundle\:
resource: '../../src/AppBundle/*'
exclude: '../../src/AppBundle/{Entity,Repository,DataFixtures}'
中阅读更多相关信息