gpt4 book ai didi

php - Composer : How to recursively autoload subfolders in/src

转载 作者:搜寻专家 更新时间:2023-10-31 21:08:29 26 4
gpt4 key购买 nike

我正在为 composer 包编写一些测试,但我无法加载/src 子文件夹中的类。

我的文件夹结构

root
- src
- file1.php
- folder1
- folder2
- file2.php
- tests

测试的文件夹结构反射(reflect)了 src 之一。

在我的 composer.json 中我有:

{
"autoload": {
"psr-4": {
"Namespace1\\\Package_Namespace\\\": "src"
}
}
}

现在,当我启动测试时,只有 src 中的那些可以很好地包含它们自己的类,而那些使用子文件夹中的类的则不能(例如,永远不会加载 file2.php)。

我也尝试过在 composer.json 文件中明确指定子文件夹,但它似乎不起作用。

我希望有人能帮助我。如果您需要更多信息,请告诉我,我会提供。

谢谢你,祝你圣诞快乐!

最佳答案

我认为您可能需要在配置中转义命名空间:

“自动加载”:{“psr-4”:{“Namespace1\\Package_Namespace\\”:“src”}}

并确保你的类/文件名遵循PSR-4 .此外,请确保 PHPUnit/您正在运行的任何测试套件加载了 composer 自动加载文件。

预计到达时间:

您还可以手动将测试添加到 bootstrap.php 文件中的命名空间(如果您正在使用一个用于测试):

$loader = require __DIR__ . "/../vendor/autoload.php";
$loader->addPsr4('Namespace1\\Package_Namespace\\', __DIR__.'/testdir');

显然,您需要根据您的路径相应地调整上述内容。

关于php - Composer : How to recursively autoload subfolders in/src,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27639453/

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