【问题标题】:CakePHP: What should go in /Lib vs /Vendor vs /PluginCakePHP:/Lib vs /Vendor vs /Plugin 应该做什么
【发布时间】:2013-10-02 01:11:52
【问题描述】:

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

【问题讨论】:

标签: php cakephp cakephp-2.0


【解决方案1】:

包含并非来自第 3 方的第 1 方库或 外部供应商。这允许您将组织的 来自供应商库的内部库。

插件

包含plugin 包。

供应商

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

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

为了进一步澄清,Lib推荐用于您自己编写的库。这可能只是几个类或整个库。 Vendor 推荐用于例如可以从 github 下载的库或脚本。 Plugin 仅限于 cakephp 框架插件。

关于 LibVendor 对于您自己的脚本或第 3 方脚本,我知道没有区别。我已经将我自己的脚本放在两个位置以及第 3 方脚本中,并且没有任何区别。这只是一种推荐的文件整理方式。

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

【讨论】:

  • 谢谢!我认为区别要明显得多。您是否介意添加几句话来说明选择 /Lib 与 /Vendor 的含义?例如,Vendor 中的东西将使用App::import() 访问,而 Lib 的东西似乎需要App::uses() 和其他一些配置。我确信它们的实现方式不同是有充分理由的,但这对我来说并不明显。
  • 一点也不明显。两者兼有似乎是多余的。特别是考虑到在 Lib 和 Vendor 中访问文件是完全不同的。
猜你喜欢
  • 1970-01-01
  • 2010-10-15
  • 2018-10-16
  • 2016-05-27
  • 1970-01-01
  • 2013-06-24
  • 1970-01-01
  • 1970-01-01
  • 2021-12-19
相关资源
最近更新 更多