【问题标题】:Composer require-dev requireing dependencies in different packages require-devComposer require-dev 需要不同包中的依赖项 require-dev
【发布时间】:2017-04-20 01:05:06
【问题描述】:

我有一些命名空间的测试被自动加载到包 A 中

"autoload-dev": {
    "psr-4": {
        "Vendor\\PackageA\\PhpUnit\\": "tests/PhpUnit"
    }
},

这很好用。

我有另一个包,包 B,它也有命名空间测试,需要包 A 中的命名空间测试之一

"autoload-dev": {
    "psr-4": {
        "Vendor\\PackageB\\PhpUnit\\": "tests/PhpUnit"
    }
},

但是,当我尝试将文件包含在包 B 中时,找不到该类

use Vendor\PackageA\PhpUnit\MyTestFromA;

class MyTestFromB extends MyTestFromA
{

让我觉得其他包中的 autoload-dev 东西没有被加载。

PHP 致命错误:在第 3 行的 /full/path/to/PackageBClass.php 中找不到类 'Vendor\PackageA\PhpUnit\MyTestFromA'

当我尝试从包 B 而不是 autoload-dev 导入使用 autoload 自动加载的文件时,我没有收到任何错误。

我该如何克服这个问题?

我的一部分人正在考虑为测试制作一个包,并在没有autoload-dev 的情况下自动加载它,但我想先确认一下。

【问题讨论】:

标签: php composer-php


【解决方案1】:

解决方案:Composer autoload-dev does not work

看看docs。它说:“autoload-dev (仅限root)”。 root only 意味着它只适用于根包。当您包含该软件包时,显示的 composer.json 文件不是根软件包,因此 autoload-dev 部分将被忽略。

【讨论】:

    猜你喜欢
    • 2018-03-06
    • 1970-01-01
    • 2013-06-19
    • 2019-06-12
    • 2016-04-15
    • 1970-01-01
    • 1970-01-01
    • 2014-04-13
    • 2018-03-10
    相关资源
    最近更新 更多