我在Packagist上有2个包。
https://packagist.org/packages/erayalakese/envato-market-api(一个)https://packagist.org/packages/erayalakese/envato-update-checker (B)
B要求a。
现在我在我的项目中使用B包。但是我得到类'erayalakeseEnvato_Update_Checker'(包B)没有找到错误。
这是我的作曲家。json文件
{
"name": "",
"description": "",
"require": {
"erayalakese/envato-update-checker": "^1.3"
},
"authors": ...
}
和我的项目文件:
<?php
require_once(__DIR__.'/vendor/autoload.php');
new erayalakeseEnvato_Update_Checker(...);
当我添加到我的作曲家。Json作为临时解决方案,它正在工作:
"autoload": {
"classmap": ["vendor/"]
}
但是我不确定我是否真的需要将供应商文件夹添加到自动加载。我希望它能自动加载我的供应商。
你能告诉我我错过了什么吗?
您必须更改两个软件包的composer.json
。
两个包都需要定义一个autoload
节。
引用:https://getcomposer.org/doc/04-schema.md classmap
erayalakese/envato-market-api
https://github.com/erayalakese/envato-market-api/blob/master/composer.json{
"name": "erayalakese/envato-market-api",
"description": "Envato Market API to verify and download Envato purchases",
"authors": [
{
"name": "Eray Alakese",
"email": "erayalakese@gmail.com"
}
],
"require": {},
"license": "GPL v2",
"autoload": {
"classmap": ["Envato_Market_API.php"]
}
}
现在这个包有一个自动加载的类映射定义,它由一个PHP文件组成。当您使用composer install
时,包的自动加载定义将被添加到Composer自动加载器中。
其他包相同的游戏:
erayalakese/envato-update-checker https://github.com/erayalakese/envato-update-checker/blob/master/composer.json
{
"name": "erayalakese/envato-update-checker",
"description": "Checks Envato WordPress plugins' updates and download its if any update available",
"require": {
"erayalakese/envato-market-api": "^1.0"
},
"authors": [
{
"name": "Eray Alakese",
"email": "erayalakese@gmail.com"
}
],
"license": "GPL v2",
"autoload": {
"classmap": ["Envato_Update_Checker.php"]
}
}
在你的主项目中:
- 要求在主项目的
composer.json
中安装"update"包- 更新包包括api包通过它的要求部分(所以你得到两个)
require_once(__DIR__ . '/vendor/autoload.php');
到项目引导new erayalakeseEnvato_Update_Checker(...);
删除这一行:
https://github.com/erayalakese/envato-update-checker/blob/master/Envato_Update_Checker.php不断化解