CakePHP:/Lib vs /Vendor vs /Plugin 中应该包含什么


CakePHP: What should go in /Lib vs /Vendor vs /Plugin

我已经使用 CakePHP 一段时间了,但我仍然不明白/Lib vs /Plugin vs /Vendor 应该做什么。我知道插件基本上是带有自己的控制器等的迷你应用程序。但是在很多情况下,这三种选择似乎都可以。有人可以对此有所了解吗?

自由

包含不是来自第三方或 外部供应商。这允许您分离组织的 供应商库中的内部库。

插件

包含插件包。

供应商

任何第三方类或库都应放置在此处。 这样做可以使它们易于使用应用程序::import('vendor', "名称"(函数。敏锐的观察者会注意到这似乎是多余的, 因为我们目录的顶层还有一个供应商文件夹 结构。我们将在以下情况下讨论两者之间的差异 讨论管理多个应用程序和更复杂的系统设置。

来源: http://book.cakephp.org/2.0/en/getting-started/cakephp-folder-structure.html

为了进一步澄清,建议Lib用于您自己编写的库。这可能只是几个类或整个库。 例如,对于您可以从 GitHub 下载的库或脚本,建议使用VendorPlugin严格适用于 cakephp 框架插件。

关于您自己的脚本或第三方脚本的LibVendor,我知道没有区别。我已经在两个位置放置了自己的脚本以及两个位置的第三方脚本,这没有任何区别。这只是组织文件的推荐方法。

您可以使用与require_once()相同的App::import()LibVendor加载脚本。要加载遵循 cakephp 约定的框架文件或您自己的脚本,您可以使用 App::uses() .这将使用使用 App::path()App::build() 定义的路径来查找文件。