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

CakePHP:Lib vs/Vendor vs/Plugin中应该包含什么,php,cakephp,cakephp-2.0,Php,Cakephp,Cakephp 2.0,我已经使用CakePHP有一段时间了,但我仍然不太明白/Libvs/Pluginvs/Vendor应该包含哪些内容。我知道插件基本上是带有自己控制器的迷你应用程序,但在很多情况下,这三个插件看起来都是ok选项。有人能解释一下吗 Lib 包含不是来自第三方或第三方的第一方库 外部供应商。这允许您将组织的 来自供应商库的内部库 插件 包含包 供应商 任何第三方类或库都应该放在这里。 这样做可以使用App::import('vendor')轻松访问它们, “name”)函数。敏锐的观察者会注意到这似乎

我已经使用CakePHP有一段时间了,但我仍然不太明白
/Lib
vs
/Plugin
vs
/Vendor
应该包含哪些内容。我知道插件基本上是带有自己控制器的迷你应用程序,但在很多情况下,这三个插件看起来都是ok选项。有人能解释一下吗

Lib

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

插件

包含包

供应商

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

资料来源:

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

关于
Lib
vs
Vendor
对于您自己的脚本或第三方脚本,我知道没有什么区别。我在这两个地方都放了我自己的脚本,也在这两个地方放了第三方脚本,但没有任何区别。这只是一种组织文件的推荐方式


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

谢谢!我认为差别要明显得多。您是否介意再补充几句关于选择/Lib与/Vendor的含义?例如,供应商中的内容将通过
App::import()
访问,而Lib内容似乎需要
App::uses()
和一些其他配置。我相信有一个很好的理由说明它们的实现方式不同,但这对我来说并不明显,一点也不明显。两者兼有似乎是多余的。特别是考虑到访问Lib和Vendor中的文件是完全不同的。