gpt4 book ai didi

php - Composer require-dev 从未添加到项目自动加载的包中自动加载

转载 作者:搜寻专家 更新时间:2023-10-31 20:39:23 25 4
gpt4 key购买 nike

我已经在 composer.json 文件中使用以下设置制作了一个 composer 包:

"autoload": {
"psr-4": {
"MyVendor\\MyPackage\\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"Test\\Unit\\MyProject\\MyPackage\\": "test/unit"
}
},

如果我运行 composer install,执行 dev 参数,我会得到以下“autoload_psr4.php”文件:

<?php

// autoload_psr4.php @generated by Composer

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

return array(
'Test\\Unit\\MyVendor\\MyPackage\\' => array($baseDir . '/test/unit'),
'MyVendor\\MyPackage\\' => array($baseDir . '/src'),
);

所以基本上,这里的一切都运行良好。然后,我将包添加到 Satis 服务器。

在我项目的 composer.json 文件中,我添加以下行:

"require": {
"myvendor/mypackage": "1.0.*@dev",
"symfony/http-foundation": "2.5.*",
"symfony/http-kernel": "2.5.*"
}

我再次在我的项目中运行 composer install,强制执行 dev 参数。该软件包安装在“vendor/myvendor/mypackage 文件夹”中,我知道已安装 DEV 版本,因为那里有“test”文件夹(稳定版本中排除了测试文件夹(存档排除))。

但是,“autoload_psr4.php”文件中缺少以下行

'Test\\Unit\\MyVendor\\MyPackage\\' => array($baseDir . '/test/unit'),

这是我使用的 composer 安装命令:

composer install --dev -d /var/www/myproject

基本上,我想知道为什么我的包的 dev 命名空间没有添加到自动加载器中。谁能解释一下?

最佳答案

autoload-devrequire-dev 都只对 root 有效(顺便说一句,dev 是默认的)。开发版本仅在您要开发包时才有用。一旦你在另一个项目中需要这个包,你就不再想开发这个包,而是另一个项目。

关于php - Composer require-dev 从未添加到项目自动加载的包中自动加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26941046/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com