/** * Redefined action-handler to match the declarative action to a "real", implemented action. * The permission handling and other stuff is checked by the base-class. * * @param string $strAction * * @return string */ public function action($strAction = "") { if ($strAction == "") { $strActionName = $this->getAction(); } else { $strActionName = $strAction; } $this->strOriginalAction = $strActionName; if (!$this->checkMethodExistsInConcreteClass("action" . ucfirst($strActionName))) { foreach (self::$arrActionNameMapping as $strAutoMatchAction => $strAnnotation) { $this->autoMatchAction($strAutoMatchAction, $strAnnotation, $strActionName); } } return parent::action($strActionName); }