/** * 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; }