мне нужен ACL для моего уровня приложений и я искал в Zend ACL который, кажется, чтобы покрыть свои потребности, но я смущен следующим [1]:Zend ACL и доступ к конкретным объектам
Например, если для каждого здания в стандартном правиле должно использоваться правило по умолчанию , можно просто назначить правилу город, а не , назначив одно и то же правило для каждого здания. Однако некоторые здания могут требовать от исключений из такого правила, и это может быть достигнуто в
Zend\Permissions\Acl\Acl
путем назначения таких правил исключения для каждого здания , требующего такого исключения.
Это замечательно. Именно то, что мне нужно. Однако как это сделать?
Из прочтения документации для Zend ACL я не могу на самом деле найти пример этого. Итак, скажем, у меня есть ресурс City
и Building
, и каждый из них реализует ResourceInterface
. Что-то вроде этого:
class City implements ResourceInterface {
public function getResourceId()
{
return "city"; // Is this supposed to be the "type" or the "unique Id"?
}
public $buildings = array();
}
class Building implements ResourceInterface {
public function getResourceId()
{
return "building"; // Again, the "type" or "unique Id"?
}
}
Поскольку комментарии в приведенном выше коде могут уже прояснить, что такое идентификатор ресурса? представляет ли он «тип» ресурса, т. е. это город или здание, или ему требуется быть уникальным идентификатором, то есть «городом-1» и т. д.?
Если ответ заключается в том, что он должен быть «типом», тогда возникает вопрос; как указать уникальные здания? Однако, если ответ заключается в том, что идентификатор должен быть уникальным, тогда возникает вопрос; как я идентифицирую «тип» ресурса и «общее» разрешение каждого здания, как указано в цитате, взятой из документации.
Любое понимание было бы высоко оценено.
[1] http://zf2.readthedocs.org/en/latest/modules/zend.permissions.acl.intro.html
может быть, это может помочь: http://stackoverflow.com/questions/11668785/zend-acl-dynamic-assertion это есть пример. –