5

假设我在 Laravel 中的包是test/test

我在工作台中创建了这个包,它在Jason Lewis 的教程之后运行良好。现在我想将包从工作台移出到供应商目录。这是所有教程的不足之处,即使是 laravel 文档。我不想使用 git 来移动文件,所以我只是将 test/test 包从工作台复制到供应商目录(然后将其从工作台中删除)。我没有从工作台复制 test/test/vendor 文件夹(或我在 .gitignore 文件中注意到的任何其他文件)。然后我从新的 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,我得到了同样的错误。

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

4

2 回答 2

7

得到它的工作。

我补充说:

"psr-0": {
    "Test\\Test": "vendor/test/test/src/"
}

到 laravel 根目录中 composer.json 的 autoload 部分,如下所示:

"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”部分中引用的包。我们会看到当我走到那一步时会发生什么!

于 2013-07-18T15:31:40.060 回答
0

我认为您可以像从本地存储库一样从硬盘驱动器安装软件包,如下所示:

"repositories": [
    {
        "type":"vcs",
        "url":"/path/to/repo/here"
    }
],
"require":{
     "me/myrepo":"dev-master"
}
于 2014-07-13T13:31:40.070 回答