【发布时间】:2014-04-25 22:13:56
【问题描述】:
我的问题是我有一个不是存储库的包,我正试图让它与 Laravel 和作曲家配合得很好。它仍然位于 vendor 文件夹下,唯一的问题是,如果我简单地设置:
"psr-0": {
"Test\\Test": "vendor/test/test/src/"
}
这将加载服务提供者,但控制器等都不会自动加载。用没有自己的存储库的 larval 实现包的正确方法是什么。或者这是否违背了包的性质,而这应该只是在应用程序控制器下进行结构化。
这个包是我使用工作台创建的,但我发现我并不真的需要将它作为一个单独的存储库,但将它作为一个包保存仍然很好。因此结构与普通包完全相同:
vendor
testvendor
testpackage
public
src
tests
.gitignore
composer.json
phpunit.xml
更新:
作为我目前使用的解决方案:
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php",
"vendor/package"
]
},
作为类映射中的一个条目。展望未来,我可能会将其重构到 app 文件夹或为此包创建存储库。
【问题讨论】:
-
我们需要更多相关信息。这个包是什么?它只是您复制给供应商的一堆文件,还是存储在您可以下载的服务器中的东西?它有作曲家包结构吗?谁创建了这个包?你能把它做成一个作曲家包并存放在家里吗?你能至少告诉我们这个包的目录结构吗?
-
为什么vendor文件夹里有非composer包??
-
您是否建议将其移至 app/vendor 或类似网站?关于其他事情,我现在将更新问题。
-
我认为你应该为你的包创建一个 workbench 而不是把它放在
vendor文件夹中。您的自定义包的格式应为workbench -
我最初确实有它在工作台下(在开发时),但工作台包不应该在生产环境中使用是我的理解吗?如果我要从中创建一个包,那么是的,我会在开发时将它移到工作台中,如果我在这里遗漏了什么,请告诉我。
标签: php laravel laravel-4 composer-php autoload