我正在关注 CakePHP 1.3 的 ACL 教程,我想知道声明这样的行为之间是否存在功能差异:
var $actsAs = array('Acl' => 'requester');
像这样:
var $actsAs = array('Acl' => array('type' => 'requester'));
cake/libs/model/behaviors/acl.php
尽管您的两个示例对于 CakePHP 1.3.4 (第 48-51 行)都是有效且正确的,但 bancer 建议的第三种方法不正确。因为 AclBehavior 在找不到配置时默认为“请求者”,这是一个潜在的令人沮丧的错误,因为它会按预期工作,直到您尝试将类型更改为“受控”。(它在CakePHP 1.2中也不起作用- Mark Story 在匿名用户的建议下对该行进行了更改。)如果你确实想替换你的第三个示例,var $actsAs = array('Acl');
应该没问题(除非你想type
成为'controlled'
,但你然后可以看到添加选项)。
没有区别。你甚至可以这样声明:
var $actsAs = array('Acl' => array('requester'));