“虽然正常的面向对象继承规则适用,但是当涉及特殊控制器属性时,CakePHP也会做一些额外的工作,例如控制器使用的组件或帮助程序列表。在这些情况下,AppController值数组被合并使用子控制器类数组。“
在我的AppController类中,我有这个:
var $components = array(
'Security',
'Pdf'
);
在另一个扩展AppController的控制器中,我有:
var $components = array(
'Paypal'
);
由于理论说明了这一点:
“AppController值数组与子控制器类数组合并”
这是否意味着在我的控制器中扩展AppController,在这种情况下合并组件相当于具有以下可用性?:
var $components = array(
'Security',
'Pdf',
'Paypal'
);
谢谢。
答案 0 :(得分:1)
您只能使用Paypal组件声明的类中有3个组件。另一个没有明确声明它的控制器只有2个原始组件。这是垂直继承,而不是横向继承,如果这有意义吗?
请注意,你引用这本书是为了一个非常过时的蛋糕版本。我明白了,我自己也遇到了1.3恐龙:-)。但我发现查阅本书的最新版本也很有用。虽然细节往往不同,但它更加充实,并且更倾向于更好地解释一般原则。
答案 1 :(得分:-1)
“CakePHP将以下变量从AppController合并到应用程序的控制器:$ components,$ helpers和$ uses。”
基于该信息,在合并之后,我理解的是最终结果将是:
var $components = array(
'Security',
'Pdf',
'Paypal'
);