为什么引导:false是CakePHP';s CakePlugin::load()?

为什么引导:false是CakePHP';s CakePlugin::load()?,php,cakephp,cakephp-2.6,Php,Cakephp,Cakephp 2.6,当我在CakePHP2.6中说CakePlugin::loadAll()时,它默认不运行插件的引导 为什么是默认值? 为什么它是可配置的呢 我的意思是跳过插件引导的用例是什么 插件不是设计为在启动时工作吗? 默认情况下加载所有内容都是不好的做法IMHO(默认情况下,开销可能会在用户不知道是什么原因的情况下将事情搞砸) 给用户一个选择是好的 您可能希望稍后加载插件或有条件加载插件(DebugKit) 您可能希望通过将插件的内容复制到apps bootstrap.php并在那里进行修改来完全更改插件

当我在CakePHP2.6中说
CakePlugin::loadAll()
时,它默认不运行插件的引导

为什么是默认值?
为什么它是可配置的呢
我的意思是跳过插件引导的用例是什么
插件不是设计为在启动时工作吗?

  • 默认情况下加载所有内容都是不好的做法IMHO(默认情况下,开销可能会在用户不知道是什么原因的情况下将事情搞砸)
  • 给用户一个选择是好的
  • 您可能希望稍后加载插件或有条件加载插件(DebugKit)
  • 您可能希望通过将插件的内容复制到apps bootstrap.php并在那里进行修改来完全更改插件的引导
这个问题很好。。。奇怪。通常人们只抱怨他们不能做的事情。有选择是很好的。我不知道这有什么问题。默认情况下,它将加载所有内容:

CakePlugin::loadAll([['bootstrap' => true]]);

在列出的所有插件中,可能有3/4(75%)既没有也不需要自己的引导/路由。所以不,默认情况下,它们不具备这些功能。不具备引导功能不需要具备此配置选项。没有它们意味着在他们的情况下,它不会运行。我只是从来没有见过一个插件,运行它的引导是可选的,并且可以双向工作,所以我很好奇。我来看看名单,谢谢!至少有一个插件引导是可选的。原因是要让它开箱即用,但用户显然必须修改它的内容,如果他想在某个时候使它适应自己的需要。我没有抱怨,我只是好奇。如果我把这个问题当作抱怨,我会抱怨默认值,但这真的不是什么大问题。检查一个插件是否有引导,检查一个配置值是否为真,这与IMHO的开销是一样的,但我没有深入研究
CakePlugin
来了解它是如何工作的。最后一点对我来说是有道理的,但其他人没有说服我。OOP本身控制着用户有多少选择,因此有一些设计成以特定方式使用的东西也不是一件坏事。但编程的这些部分实际上是品味的问题。引导和路由都不代表可继承的类。我不认为OOP与基本配置和引导有任何关系,除非你编写了一个完整的基于OOP的引导系统,它在我看来没有多大意义,因为它太过复杂了。例如,Symfony使用大量的YML文件。列表中的第一点是最重要的:我不想添加任何内容,它会在没有我明确许可或交互的情况下神奇地开始做事情。