我正在使用composer在我的项目中包含一个私有包,其中将包含一些类,这些类将用于与PHPUnit进行测试。大部分软件包都已正确地自动加载,我可以从单元测试中调用这些类,但是任何与该目录中的名称相同的类都将引发“找不到类”错误。
存储库符合psr-0,位于https://github.com/DeschutesDesignGroupLLC/IPS-Source
文件结构示例抛出错误:
--src
----IPS
------DateTime
--------DateTime.php
呼叫$date = new \IPS\DateTime;
会引发错误。
文件结构示例不引发错误:
--src
----IPS
------Http
--------Url.php
呼叫$url = new \IPS\Http\Url;
不会引发错误。
私有软件包的Composer.json:
{
"name": "deschutesdesigngroupllc/ips",
"description": "Invision power board source files used to test against",
"homepage": "https://www.invisioncommunity.com",
"version": "4.3.6",
"autoload": {
"psr-0": {
"IPS\\": "src/"
}
},
"extra": {
"branch-alias": {
"dev-master": "4.3.6"
}
},
"require": {
"phpdocumentor/phpdocumentor": "dev-master"
}
}
答案 0 :(得分:1)
在第一个示例中,您需要一个文件,但提供了其父文件的路径。在第二个中,您再次想要一个文件,但是这次提供了完整路径。毫不奇怪,第一个失败,第二个成功。
看来
$date = new \IPS\DateTime\DateTime;
是您想要的。