示例#1
0
 /**
  * @param Itk_PgmAbstract $program
  * @return Itk_Pgm_Result
  */
 public function execute(Itk_PgmAbstract $program)
 {
     $prog = i5_program_prepare($program->getProgramName(), $program->getDescription());
     if ($prog === false) {
         throw new Itk_Connection_Adapter_Exception('Unable to prepare program: ' . i5_errormsg());
     }
     $returnValues = $program->getReturn();
     if (!i5_program_call($prog, $program->toArray(), $returnValues)) {
         throw new Itk_Connection_Adapter_Exception('Unable to execute program: ' . i5_errormsg());
     }
     $results = array();
     foreach ($returnValues as $var) {
         $results[$var] = ${$var};
     }
     return new Itk_Pgm_Result($results);
 }