oAction=$oAction; $this->oActionReflection=new ReflectionClass($this->oAction); } /** * Запускается для обработки евента, если у него не указанно имя, например, "User::" */ public function Exec() { } /** * Запускается всегда перед вызовом метода евента */ public function Init() { } public function __get($sName) { if ($this->oActionReflection->hasProperty($sName)) { return call_user_func_array(array($this->oAction,'ActionGet'),array($sName)); } } public function __set($sName,$mValue) { if ($this->oActionReflection->hasProperty($sName)) { return call_user_func_array(array($this->oAction,'ActionSet'),array($sName,$mValue)); } } public function __call($sName,$aArgs) { /** * Обработка вызова методов экшена */ if ($this->oAction->ActionCallExists($sName)) { array_unshift($aArgs,$sName); return call_user_func_array(array($this->oAction,'ActionCall'),$aArgs); } return Engine::getInstance()->_CallModule($sName,$aArgs); } }