Example #1
0
 /**
  * use for remote rpc call
  * @param String $asModule
  * @param String $asMethod
  * @return array("status":boolean, "return":mixed, "control":object);
  */
 public function runService($asModule, $asMethod, $aData = array())
 {
     $this->bIsService = true;
     $sModule = empty($asModule) ? "default" : $asModule;
     $sMethod = empty($asMethod) ? "default" : $asMethod;
     //clean method
     $sMethodName = ucwords($sMethod);
     $sMethodName = str_replace(" ", "", $sMethodName);
     FlexiLogger::debug(__METHOD__, "module: " . $sModule . ", method: " . $sMethod);
     //throw new Exception("About to run: " . $sModule . ", method: " . $sMethodName);
     $oClass =& self::getControllerInstance($sModule, null, $sMethodName, null);
     self::$oActiveControl = $oClass;
     if (is_null($oClass)) {
         FlexiLogger::error(__METHOD__, "module: " . $sModule . " does not exists");
         throw new Exception("Unknown module: " . $sModule);
     }
     FlexiLogger::debug(__METHOD__, "calling runService");
     //render view as "body" var
     $mResult = $oClass->runService($sMethod, null, $aData);
     //manually render layout
     FlexiLogger::debug(__METHOD__, "called runService");
     return array("status" => true, "return" => $mResult, "control" => &$oClass);
 }