CakePHP 如何将 AppController 中的 $components 合并到我的应用程序的控制器中?
How does CakePHP merge $components from the AppController to my application’s controllers?
我在 https://book.cakephp.org/1.2/en/The-Manual/Developing-with-CakePHP/Controllers.html#the-app-controller 阅读了以下段落:
"While normal object-oriented inheritance rules apply, CakePHP also does a bit of extra work when it comes to special controller attributes, like the list of components or helpers used by a controller. In these cases, AppController value arrays are merged with child controller class arrays."
在我的 AppController class 我有这个:
var $components = array(
'Security',
'Pdf'
);
在扩展 AppController 的另一个控制器中,我有这个:
var $components = array(
'Paypal'
);
既然理论是这样说的:
"AppController value arrays are merged with child controller class arrays"
这是否意味着在我的扩展 AppController 的控制器中,在这种情况下合并组件相当于具有以下可用组件?:
var $components = array(
'Security',
'Pdf',
'Paypal'
);
谢谢。
"CakePHP merges the following variables from the AppController to your application’s controllers: $components, $helpers and $uses."
根据这些信息,合并后,我的理解是最终结果是:
var $components = array(
'Security',
'Pdf',
'Paypal'
);
您只能在使用 Paypal 组件声明的 class 中使用 3 个组件。另一个没有明确声明它的控制器手头只有 2 个原始组件。这是纵向继承,不是横向继承,有道理吗?
请注意,您引用的是一个非常过时的蛋糕版本的书。我明白,我自己也被 1.3 的恐龙困住了 :-)。但我发现查阅这本书的最新版本也很有用。虽然细节往往不同,但它更充实,而且往往能更好地解释一般原则。
我在 https://book.cakephp.org/1.2/en/The-Manual/Developing-with-CakePHP/Controllers.html#the-app-controller 阅读了以下段落:
"While normal object-oriented inheritance rules apply, CakePHP also does a bit of extra work when it comes to special controller attributes, like the list of components or helpers used by a controller. In these cases, AppController value arrays are merged with child controller class arrays."
在我的 AppController class 我有这个:
var $components = array(
'Security',
'Pdf'
);
在扩展 AppController 的另一个控制器中,我有这个:
var $components = array(
'Paypal'
);
既然理论是这样说的:
"AppController value arrays are merged with child controller class arrays"
这是否意味着在我的扩展 AppController 的控制器中,在这种情况下合并组件相当于具有以下可用组件?:
var $components = array(
'Security',
'Pdf',
'Paypal'
);
谢谢。
"CakePHP merges the following variables from the AppController to your application’s controllers: $components, $helpers and $uses."
根据这些信息,合并后,我的理解是最终结果是:
var $components = array(
'Security',
'Pdf',
'Paypal'
);
您只能在使用 Paypal 组件声明的 class 中使用 3 个组件。另一个没有明确声明它的控制器手头只有 2 个原始组件。这是纵向继承,不是横向继承,有道理吗?
请注意,您引用的是一个非常过时的蛋糕版本的书。我明白,我自己也被 1.3 的恐龙困住了 :-)。但我发现查阅这本书的最新版本也很有用。虽然细节往往不同,但它更充实,而且往往能更好地解释一般原则。