我的包中的Composer类没有在使用它的应用程序中自动加载

时间:2015-08-04 13:59:52

标签: php namespaces composer-php autoload

我正在创建一个我将包含在几个项目中的模块。但是,在使用该模块的项目中,自动加载器似乎不包含模块中的类。

模块结构(等)如下:

git存储库中的目录结构:

/
/composer.json
/src/
/src/EbayAPI.php

composer.json

{
    "name": "jodes/ebay-api",
    "autoload": {
        "psr-4" : {
            "Jodes\\EbayAPI\\" : "src"
        }
    }
}

EbayAPI.php:

<?php
namespace Jodes;
class EbayAPI {}

我试图将其包含在内的应用程序具有以下内容:

composer.json

{
    "require": {
        "behat/behat": "@stable",
        ....other requirements in here...
        "jodes/ebay-api": "dev-master"
        },
    "config": {
        "bin-dir": "bin/"
    },
    "repositories": [
        {
            "type": "vcs",
            "url": "https://Jody@bitbucket.org/Jody/ebay_api.git"
        }
    ]
}    

想要通过自动加载器使用我的软件包的php文件是:

<?php

use Jodes\EbayAPI;
require_once 'vendor/autoload.php';

class HelloWorld {
    public function __construct(){
        $ebay = new EbayAPI();
    }
}

我得到的错误是

  

致命错误:未找到类'Jodes \ EbayAPI'

我做错了什么? 感谢

1 个答案:

答案 0 :(得分:0)

由@Danack在聊天中提供,解决方案很简单:

"Jodes\\EbayAPI\\" : "src"更改为"Jodes\\" : "src"

(我会在发布答案后删除此答案)