我正在开发一个我后来想上传到packagist的软件包。但就目前而言,我只想在本地开发它。但我无法找到一种方法让作曲家自动加载我的包而不在Packagist中。
目前我的项目结构如下所示:
www/
index.php
composer.json
composer.lock
vendor/
autoload.php
acme/
http/
composer.json
src/
Request.php
我手动将acme
文件夹放在vendor
文件夹中。我还在composer.json
文件夹中添加了另一个acme/http
,其中包含以下内容:
{
"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
然后在repositories
上使用www/composer.json
条目:
{
"name": "foo/www",
...
"require": {
"acme/http": "*",
..
},
"repositories": [
{
"type": "path",
"url": "./acme/http"
}
]
}
运行composer dump-autoload
以更新自动加载器。
有关更多信息,请参阅:https://getcomposer.org/doc/03-cli.md#dump-autoload
将您的课程添加到vendor/composer/autoload_psr4.php
或vendor/composer/autoload_classmap.php