Разница между массивом ('Acl' => array ('type' => 'requestter')) и массивом ('Acl' => 'requestter') в CakePHP? - PullRequest
1 голос
/ 24 мая 2010

Я следую учебному пособию по ACL для CakePHP 1.3, и мне было интересно, есть ли функциональная разница между объявлением поведения, подобного этому:

var $actsAs = array('Acl' => 'requester');

и вот так:

var $actsAs = array('Acl' => array('type' => 'requester'));

Ответы [ 2 ]

0 голосов
/ 19 октября 2010

Хотя ваши два примера являются действительными и правильными для CakePHP 1.3.4 (cake/libs/model/behaviors/acl.php строки 48-51 ), предлагаемый третий метод, опубликованный bancer, неверен.Поскольку AclBehavior по умолчанию имеет значение «запрашивающая сторона», когда он не может найти конфигурацию, это потенциально разочаровывающая ошибка в том, что она будет работать так, как ожидается, пока вы не попытаетесь изменить тип на «контролируемый».(это также не работает в CakePHP 1.2 - Марк Стори внес изменения в эту строку по совету анонимного пользователя .) Если вы хотите заменить свой третий пример,var $actsAs = array('Acl'); должно подойти (если вы не хотите, чтобы type было 'controlled', но вы можете увидеть добавление опции).

0 голосов
/ 25 мая 2010

Разницы нет.Вы даже можете объявить этот путь:

var $actsAs = array('Acl' => array('requester'));
...