当引入一个自制的composer包时,所引入的文件的命名空间大小写与源代码不同。
<小时/> GitHub上的软件包源代码
来源composer.json代码:
"name": "bsapaka/metattribute",
"autoload": {
"psr-4": {
"Bsapaka\\Metattribute\\": "src/"
}
},
来源namespace:
namespace Bsapaka\Metattribute;
<小时/> 拉入项目from Packagist
时显示的代码
作曲家在autoload_psr4.php
中生成的行:
'bsapaka\\metattribute\\' => array($vendorDir . '/bsapaka/metattribute/src'),
供应商文件中出现的命名空间:
namespace bsapaka\Metattribute;
尝试使用它时的例外:
未找到类'bsapaka \ Metattribute \ AttributeList'
我尝试更改源代码大小写。全部为大写,全部为小写,一个为低一个,等等。每次,psr4路径和类名称空间永远不会相同,并且异常仍然存在。
答案 0 :(得分:0)
我下了一个copy of your library并创建了一个PHPUnit测试。我无法重现你的问题。看起来你已经解决了?您现在正在使用namespace Bsapaka\Metattribute
。
在Tests\AttributeTest.php
:
<?php
class AttributeTest extends PHPUnit_Framework_TestCase
{
public function testName()
{
$attribute = new \Bsapaka\Metattribute\Attribute("Elvis");
$this->assertEquals("Elvis", $attribute->getName());
}
}
要使上述功能正常运行,composer.json
现在包括:
"require-dev": {
"phpunit/phpunit": "~4.0"
}
通过:vendor/bin/phpunit tests/AttributeTest.php