我正在处理一个包,稍后我想把它上传到packagist。但现在,我只想在本地发展它。但是我找不到一种方法让composer自动加载我的包,而不把它放在Packagist中。
目前我的项目结构看起来像这样:
www/
index.php
composer.json
composer.lock
vendor/
autoload.php
acme/
http/
composer.json
src/
Request.php
我已经手动将我的acme
文件夹放在vendor
文件夹中。我还在acme/http
文件夹中添加了另一个composer.json
,内容如下:
{
"name": "Acme/Http",
"authors": [{
"name": "Acme"
}],
"require": {
"php": ">=5.3.0"
},
"autoload": {
"psr-4": {
"Acme\Http\": "src/"
}
}
}
现在,我现在如何添加我的"本地"项目作曲家autoload.php
?
将acme/http
放在vendor
之外会更干净和清晰:
www/
index.php
composer.json
composer.lock
acme/
http/
composer.json
src/
Request.php
vendor/
autoload.php
然后在www/composer.json
上使用repositories
条目:
{
"name": "foo/www",
...
"require": {
"acme/http": "*",
..
},
"repositories": [
{
"type": "path",
"url": "./acme/http"
}
]
}
运行composer dump-autoload
更新自动加载器
更多信息见:https://getcomposer.org/doc/03-cli.md dump-autoload
添加您的class到vendor/composer/autoload_psr4.php
或vendor/composer/autoload_classmap.php