【问题标题】:Composer autoload-dev does not work作曲家自动加载开发不起作用
【发布时间】:2016-08-01 00:59:25
【问题描述】:

文件 autoload_psr4.php 不包含来自“autoload-dev”部分的命名空间,仅来自“autoload”部分。

当我的 composer.json 读取时

"autoload": {
    "psr-4": {
        "Namespace\\": "src/"
    }
},
"autoload-dev": {
    "prs-4": {
        "Namespace\\Tests\\": "tests/"
    }
}

然后我跑

composer require vendor/namespace 1.0-dev

我的 /vendor/composer/autoload_prs4.php 文件显示为

// autoload_psr4.php @generated by Composer

$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);

return array(
    'Namespace\\' => array($baseDir . '/src'),
);

谢谢!

【问题讨论】:

  • 您尝试过什么调试问题?检查是否有任何拼写错误,如`prs-4`?

标签: php git composer-php packagist


【解决方案1】:

由于这是搜索“autoload-dev not working”时的第一个搜索引擎结果:在composer.json中,如果在定义和使用"autoload"后添加了"autoload-dev",则运行$ composer dump-autoload。

【讨论】:

  • 谢谢伙计,让我头疼不已,我想知道该命令应该如何运行它。我不想制作自己的自动加载器并将其引导到 phpunit.xml
【解决方案2】:

我猜你展示的是composer.json 的vendor/namespace 包。如果是这样的话:

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

【讨论】:

  • 改变目录到'vendor/'下的包目录,然后运行phpunit
猜你喜欢
  • 2014-01-31
  • 2016-10-20
  • 2015-12-24
  • 2017-12-28
  • 2017-12-28
  • 2013-03-05
  • 2016-05-26
  • 1970-01-01
  • 2013-12-09
相关资源
最近更新 更多