如何知道 Laravel 包需要哪些作曲家依赖项?
Posted
技术标签:
【中文标题】如何知道 Laravel 包需要哪些作曲家依赖项?【英文标题】:How to know which composer dependencies are needed for a Laravel package? 【发布时间】:2018-09-23 16:59:08 【问题描述】:我在开发 Laravel 包时遇到了所需的依赖项。
在包中设置服务提供者时,您需要illuminate/support
包。当您的包包含控制台命令时,您将需要 illuminate/console
包。
像storage_path()
或config()
这样的全局助手呢?我找不到包含它们的发光包。
为什么他们的包裹不只需要laravel/framework
?所有类和函数都可用。无论如何它都可以在项目中使用。
【问题讨论】:
【参考方案1】:当您要求包仅用于 Laravel 项目时,通常需要 laravel/framework
作为依赖项。
但是,跳过那些全局辅助函数并尝试将它们与直接函数调用一起使用几乎总是一个更好的主意。也许你可以减少你拥有的依赖数量。
当不直接使用 laravel/framework
作为依赖项时,请确保您测试包而不将其安装在普通的 Laravel 包中。小型单元测试有助于测试功能。
我制作了一个“Laravel”包。我也遇到过这个问题。也许你可以 看看吧:https://github.com/markwalet/laravel-hashed-route
它仅使用以下 Laravel 特定依赖项:
"illuminate/config": "~5.5",
"illuminate/database": "~5.5",
"illuminate/support": "~5.5"
【讨论】:
“直接调用”是什么意思?可以写成app('config')
,但你仍然会使用全局函数app()
。浏览laravel-debugbar repo 时,不需要illuminate/console
,尽管有一个控制台命令。它具有不存在的illuminate/framework
作为开发依赖项。你知道为什么吗?
我的意思是一个函数调用。有时您可以手动构建组件(如应用程序)而不是使用辅助函数。这有助于降低您的要求。至于 laravel-debugbar repo,我不知道他们为什么会这样。我认为 Barry 忘记更新它们了,因为 repo 几乎只用于 laravel 项目,所以这个包只能靠运气才能工作。我将在包装上打开一些问题。好电话;)以上是关于如何知道 Laravel 包需要哪些作曲家依赖项?的主要内容,如果未能解决你的问题,请参考以下文章