Composer 生成大小写错误的命名空间
Posted
技术标签:
【中文标题】Composer 生成大小写错误的命名空间【英文标题】:Composer generates incorrectly capitalized namespaces 【发布时间】:2016-07-04 17:34:56 【问题描述】:拉入自制composer包时,拉入的文件与源代码的命名空间大小写不同。
GitHub上的包源代码
来源composer.json代码:
"name": "bsapaka/metattribute",
"autoload":
"psr-4":
"Bsapaka\\Metattribute\\": "src/"
,
来源namespace:
namespace Bsapaka\Metattribute;
拉入项目from Packagist时出现的代码
composer在autoload_psr4.php
中生成的行:
'bsapaka\\metattribute\\' => array($vendorDir . '/bsapaka/metattribute/src'),
出现在供应商文件中的命名空间:
namespace bsapaka\Metattribute;
尝试使用时的异常:
找不到类'bsapaka\Metattribute\AttributeList'
我已尝试更改源代码的大小写。全大写,全小写,一大一小等。每次psr4路径和类命名空间都不相同,异常依旧。
【问题讨论】:
【参考方案1】:我删除了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
启动
【讨论】:
我这边还有问题...你是通过作曲家拉进来的吗? 是的。我不得不要求"bsapaka/matattribute": "dev-master"
,因为它有你更正的命名空间。 v1.0.0 仍然坏了:)以上是关于Composer 生成大小写错误的命名空间的主要内容,如果未能解决你的问题,请参考以下文章