作曲家自动加载开发不起作用 [英] Composer autoload-dev does not work

查看:142
本文介绍了作曲家自动加载开发不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



当我的composer.json读取

时,autoload_psr4.php不包含来自autoload-dev部分的命名空间。 >

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

/ p>

  composer需要vendor / namespace 1.0-dev 

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

  // autoload_psr4。 php @generated by Composer 

$ vendorDir = dirname(dirname(__ FILE__));
$ baseDir = dirname($ vendorDir);
$ b $ return array(
'Namespace\\'=> array($ baseDir。'/ src'),
);

谢谢!

解决方案

我的猜测是你正在显示 vendor / namespace 包的 composer.json 。如果是这种情况:



查看文档。它说:autoload-dev(仅限根)。根仅意味着它仅适用于根包。当你包含这个包时,所显示的 composer.json 文件不是根包,而 autoload-dev 部分是因此被忽略。


The file autoload_psr4.php not contains the namespace from "autoload-dev" section only from "autoload" section.

When my composer.json reads

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

And I run

composer require vendor/namespace 1.0-dev

My /vendor/composer/autoload_prs4.php file appears as

// autoload_psr4.php @generated by Composer

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

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

Thanks!

解决方案

My guess is that you're showing the composer.json of vendor/namespace package. If that's the case:

Take a look at the docs. It says: "autoload-dev (root only)". root only means it only applies to the root package. As you included the package, the shown composer.json file is not the root package and the autoload-dev section is thus ignored.

这篇关于作曲家自动加载开发不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆