getRoleId(); } else { $roleId = $role; $role = $this->get($role); } } catch (\Zend_Acl_Role_Registry_Exception $e) { throw new \Zend_Acl_Role_Registry_Exception("Child Role id '{$roleId}' does not exist"); } if (!is_array($parents)) { $parents = [$parents]; } foreach ($parents as $parent) { try { if ($parent instanceof \Zend_Acl_Role_Interface) { $roleParentId = $parent->getRoleId(); } else { $roleParentId = $parent; } $roleParent = $this->get($roleParentId); } catch (\Zend_Acl_Role_Registry_Exception $e) { throw new \Zend_Acl_Role_Registry_Exception("Parent Role id '{$roleParentId}' does not exist"); } $this->_roles[$roleId]['parents'][$roleParentId] = $roleParent; $this->_roles[$roleParentId]['children'][$roleId] = $role; } return $this; } }