【发布时间】:2018-04-02 03:46:19
【问题描述】:
我创建了一个包来将业务逻辑分离成更易于分发的模块。作曲家文件如下所示:
{
"name": "aggiq/johnny-cash",
"description": "A collection of controllers, models, migrations, and tests for a phonebanking backend.",
"license": "MIT",
"authors": [ ... ],
"require": {
"illuminate/database": ">=5.5"
},
"require-dev": {
"fzaninotto/faker": "~1.4"
},
"autoload": {
"psr-4": {
"Johnny\\Phonebanking\\": "src/"
}
}
}
而且我们的源文件确实在 src/:
src/Controllers/PhonebankController.php src/Models/Phonebank.php ...
我保存并将其推送到我们的 gitlab 存储库,然后将其作为依赖项包含在测试项目中:
{
...,
"repositories": [{
"type": "package",
"package": {
"name": "aggiq/johnny-cash",
"version": "0.1",
"type": "package",
"source": {
"url": "gitlab url",
"type": "git",
"reference": "dev"
}
}
}],
"require": {
"aggiq/johnny-cash": "*",
},
...
}
当我更新作曲家时,它会成功抓取项目并将其下载到供应商文件夹中:
vendor/aggiq/johnny-cash/Controllers/PhonebankController.php
...
但是,当我查看测试项目的 autoload_psr4.php 时,它并不存在。有没有我遗漏的步骤?
编辑:将目录更新为大写字母以匹配命名空间,这是生成的 PSR4 php 文件:
<?php
// autoload_psr4.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
);
【问题讨论】:
标签: php composer-php