Я новичок в Zend Framework и сейчас смотрю на Zend_Acl.
Есть несколько примеров в Интернете. Во многих из этих примеров вы увидите код, подобный следующему:
class My_Acl extends Zend_Acl {
public function __construct() {
//Add a new role called "guest"
$this->addRole(new Zend_Acl_Role('guest'));
//Add a role called user, which inherits from guest
$this->addRole(new Zend_Acl_Role('user'), 'guest');
//Add a resource called page
$this->add(new Zend_Acl_Resource('page'));
//Add a resource called news, which inherits page
$this->add(new Zend_Acl_Resource('news'), 'page');
//Finally, we want to allow guests to view pages
$this->allow('guest', 'page', 'view');
//and users can comment news
$this->allow('user', 'news', 'comment');
}
}
Итак, в основном - мы расширяем наш класс Zend_Acl, где мы определяем роли и ресурсы. Я не могу понять, почему мы создаем отдельный класс, а не делаем то же самое, например, в методе ресурса в начальной загрузке, а затем отправляем результат в реестр?
Как это, например:
protected function _initAcl()
{
$myacl = new Zend_Acl();
$myacl->addRole(new Zend_Acl_Role('guest'));
$myacl->addRole(new Zend_Acl_Role('user'), 'guest');
$myacl->add(new Zend_Acl_Resource('page'));
$myacl->add(new Zend_Acl_Resource('news'), 'page');
$myacl->allow('guest', 'page', 'view');
$myacl->allow('user', 'news', 'comment');
Zend_Registry::set('acl', $myacl);
}
Правильно ли я считаю, что эти способы дадут нам один и тот же результат?
спасибо!
постскриптум чертовски сложно - 1011 *