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

pro*_*mer 5 workbench laravel laravel-4

假设我在Laravel中的包是测试/测试.

我在工作台中创建了这个包,并且在Jason Lewis的教程之后它一直很好用.现在我想将软件包从工作台移到供应商目录.这是所有教程都不足的地方,甚至是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)
Run Code Online (Sandbox Code Playgroud)

我也从laravel根做了一个php artisan dump-autoload,我得到同样的错误.

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

pro*_*mer 7

搞定了.

我补充说:

"psr-0": {
    "Test\\Test": "vendor/test/test/src/"
}
Run Code Online (Sandbox Code Playgroud)

到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/"
    }       
},
Run Code Online (Sandbox Code Playgroud)

如果我决定稍后将软件包放在Packagist上,那么我可能会从自动加载中删除它,并保持在composer.json的"require"部分引用的软件包.我们会看到当我走得那么远时会发生什么!