我正在处理一个我后来要上传到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
?
答案 0 :(得分:0)
运行composer dump-autoload
以更新自动加载器。
有关详细信息,请参阅: https://getcomposer.org/doc/03-cli.md#dump-autoload
答案 1 :(得分:0)
将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"
}
]
}
答案 2 :(得分:-2)
将您的课程添加到vendor/composer/autoload_psr4.php
或vendor/composer/autoload_classmap.php