Composer,我的包中的类没有在使用它的应用程序中自动加载
Posted
技术标签:
【中文标题】Composer,我的包中的类没有在使用它的应用程序中自动加载【英文标题】:Composer, class within my package is not being autoloaded in application using it 【发布时间】:2015-10-26 23:35:12 【问题描述】:我正在创建一个模块,该模块将包含在多个项目中。但是,在使用模块的项目中,自动加载器似乎没有在模块中包含该类。
模块结构(等)如下:
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】:感谢@Danack 聊天,解决方案很简单:
将"Jodes\\EbayAPI\\" : "src"
更改为"Jodes\\" : "src"
(一旦他发布他的答案,我会删除这个答案)
【讨论】:
以上是关于Composer,我的包中的类没有在使用它的应用程序中自动加载的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Laravel 外部的包中使用 Laravel 外观(缓存、日志、存储)
不推荐使用 composer require-dev 安装 phpunit?