在Laravel工作台中创建了包,但是如何转移到vendor文件夹?

时间:2013-07-18 15:08:59

标签: laravel laravel-4 workbench

假设我在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 ,我也遇到了同样的错误。

有什么想法吗?或者有人可以带我到一个教程,将包开发一直带到它在供应商目录中的最终休息点?

2 个答案:

答案 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"
}