コード例 #1
0
 /**
  * Static instantiator - create the reflector with serviceId and optional action name
  * @param string $service
  * @param string $action
  * @return KalturaServiceReflector
  */
 public static function constructFromServiceId($service)
 {
     $newInstance = new KalturaServiceReflector();
     $newInstance->_serviceId = strtolower($service);
     $newInstance->_servicesMap = KalturaServicesMap::getMap();
     if (!$newInstance->isServiceExists($newInstance->_serviceId)) {
         throw new Exception("Service [{$service}] does not exists in service list [" . print_r(array_keys($newInstance->_servicesMap), true) . "]");
     }
     $serviceActionItem = $newInstance->_servicesMap[$newInstance->_serviceId];
     /* @var $serviceActionItem KalturaServiceActionItem */
     $newInstance->_serviceClass = $serviceActionItem->serviceClass;
     if (!class_exists($newInstance->_serviceClass)) {
         throw new Exception("Service class [{$newInstance->_serviceClass}] for service [{$service}] does not exists");
     }
     $reflectionClass = new ReflectionClass($newInstance->_serviceClass);
     $newInstance->_serviceInfo = new KalturaDocCommentParser($reflectionClass->getDocComment());
     return $newInstance;
 }