Ejemplo n.º 1
0
 /**
  * @param \ReflectionMethod $method
  * @param string $api
  * @return array
  */
 public static function extractRouteInfo(\ReflectionMethod $method, $api = '')
 {
     $route = $info = null;
     $docComments = $method->getDocComment();
     preg_match('/@route\\ (.*)\\n/i', $docComments, $sr);
     if (count($sr)) {
         list($regex, $default, $params) = RouterHelper::extractReflectionParams($sr, $method);
         if (strlen($api)) {
             $regex = str_replace('{__API__}', $api, $regex);
             $default = str_replace('{__API__}', $api, $default);
         }
         $httpMethod = RouterHelper::extractReflectionHttpMethod($docComments);
         if (self::checkCanAddRoute($regex, $api)) {
             $route = $httpMethod . "#|#" . $regex;
             $info = ["method" => $method->getName(), "params" => $params, "default" => $default, "visible" => RouterHelper::extractReflectionVisibility($docComments), "http" => $httpMethod, "cache" => RouterHelper::extractReflectionCacheability($docComments)];
         }
     }
     return [$route, $info];
 }