Zend_Acl
будет обрабатывать все, что вам нужно для контроля доступа.Ваша задача - определить ресурс и привилегии.Это означает, что вы можете добавить разрешения на любой запрос.Похоже, у вас есть алгоритм ACL, который вы скопировали из руководства ZF или другого места в Интернете, и вы пытаетесь придерживаться этого, как если бы он был стандартом.Zend_Acl никогда не говорит, что вы должны придерживаться их метода.
Теперь к вашей проблеме.Поскольку у вас есть одинаковый module/controller/action
для каждой страницы, вы должны рассматривать его как один ресурс, а затем вы можете определить привилегии уровня страницы на основе параметра вашего пользовательского URL, который вы упомянули.
Проще говоря, вы можетесделайте это:
$acl->allow('role', 'Module:Controller:Action', array('UrlParams'));
Не забывайте, Zend_Acl::allow
основано на ресурсах и привилегиях НЕ module/controller/action
.Смотрите ниже:
$acl->allow('role','resource',array('privileges'));