假设我在Laravel中的软件包是 test / test 。
我在工作台中创建了包,它在Jason Lewis' tutorial之后一直很好用。现在我想把包裹搬出去 工作台到供应商目录。这是所有教程不足的地方,甚至是laravel文档。我不想使用git来移动文件,所以我只是将测试/测试包从工作台复制到供应商目录(然后从工作台中删除它)。我没有从工作台(或我在.gitignore文件中注意到的任何其他文件)复制test / test / vendor文件夹。然后我从新的vendor / test / test目录运行 composer install 。然后我从laravel根目录中执行了 composer dump-autoload 。
现在当我运行我的应用程序时,我得到一个错误,当包在工作台中时我没有得到错误:
Class 'Test\Test\TestServiceProvider' not found
(this is coming from \bootstrap\compiled.php on line 4121)
我也从laravel根目录中做了一个 php artisan dump-autoload ,我也遇到了同样的错误。
有什么想法吗?或者有人可以带我到一个教程,将包开发一直带到它在供应商目录中的最终休息点?
答案 0 :(得分:7)
搞定了。
我补充说:
"psr-0": {
"Test\\Test": "vendor/test/test/src/"
}
到laravel根目录下的composer.json中的自动加载部分,所以它看起来像这样:
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php"
],
"psr-0": {
"Test\\Test": "vendor/test/test/src/"
}
},
如果我决定稍后将软件包放在Packagist上,那么我可能会将其从自动加载中删除,并保留在composer.json的“require”部分引用的软件包。我们会看到当我走得那么远时会发生什么!
答案 1 :(得分:0)
我认为您可以从本地存储库安装硬盘驱动器中的软件包,如下所示:
"repositories": [
{
"type":"vcs",
"url":"/path/to/repo/here"
}
],
"require":{
"me/myrepo":"dev-master"
}