Example #1
0
 /**
  * Parse route annotations on given object methods
  * @param Method[] $methods
  * @return array $data[URL mask][request method] = action name e.g. $data['api/v1/articles']['GET'] = 'read'
  */
 protected function parseClassRoutes($methods)
 {
     $routeData = array();
     foreach ($methods as $method) {
         // Parse annotations only on action methods
         if (!Strings::contains($method->getName(), 'action')) {
             continue;
         }
         $annotations = $this->routeAnnotation->parse($method);
         foreach ($annotations as $requestMethod => $mask) {
             $action = str_replace('action', '', $method->getName());
             $action = Strings::firstLower($action);
             $pattern = $this->prefix ? $this->prefix . '/' . $mask : $mask;
             $routeData[$pattern][$requestMethod] = $action;
         }
     }
     return $routeData;
 }