【发布时间】:2014-08-02 01:59:40
【问题描述】:
我正在尝试将此作曲家包用于我正在处理的新项目https://packagist.org/packages/activecollab/activecollab-sdk。但是,当我尝试创建一个新类时,我不断收到以下错误。
Fatal error: Class 'ActiveCollab\Client' not found
引发此错误的文件如下所示。
require "vendor/autoload.php";
new ActiveCollab\Client;
这只是用于测试文件是否正确加载。我尝试使用的文件的 composer.json 看起来像这样。而且我感觉问题出在这个文件中,但我不知道是什么。
stuff...
"autoload": {
"psr-0": {
"ActiveCollab\\": "ActiveCollab"
}
}
...stuff
同时查看正在生成的 autload_namespaces.php 文件。
<?php
// autoload_namespaces.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
'ActiveCollab' => array($vendorDir . '/activecollab/activecollab-sdk/ActiveCollab'),
);
我在自己的一些作曲家包中使用了 psr-0,一切看起来都是正确的,除了命名空间中的骆驼案例,但我不认为这在 psr-0 的 php 提案中是不允许的。
感谢您的帮助,这让我发疯了。
【问题讨论】:
-
我不确定这一点,但根据 psr0,类的文件名不必是 ClassName.php。那么使用 ClassName.class.php 可能会违反这个?
标签: php composer-php autoload psr-0