/** * @param iControllerDescription $controller * @return array */ public static function toArray(iControllerDescription $controller) { $actions = array(); foreach ($controller->getActions() as $action) { $actions[] = $action->getName(); } return array('className' => $controller->getClassName(), 'actions' => $actions); }
/** * * @param core_kernel_classes_Resource $extensionResource * @param iControllerDescription $controller * @return core_kernel_classes_Resource */ private function storeController(core_kernel_classes_Resource $extensionResource, iControllerDescription $controller) { list($prefix, $extensionName) = explode('_', substr($extensionResource->getUri(), strrpos($extensionResource->getUri(), '#'))); preg_match("/[a-zA-Z]*\$/", $controller->getClassName(), $matches); $shortName = $matches[0]; $specialURI = FUNCACL_NS . '#m_' . $extensionName . '_' . $shortName; $controllerClass = new core_kernel_classes_Class(CLASS_ACL_MODULE); $controllerResource = $controllerClass->createInstance($shortName, '', $specialURI); $controllerResource->setPropertiesValues(array(PROPERTY_ACL_MODULE_EXTENSION => $extensionResource, self::PROPERTY_ACL_CONTROLLER_CLASSNAME => $controller->getClassName(), PROPERTY_ACL_COMPONENT_ID => $shortName)); return $controllerResource; }
private function storeController(iControllerDescription $controller) { $key = $controller->getClassName(); $this->persistence->set($key, ControllerDescription::toArray($controller)); }