| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 | 
							- <?php
 
- namespace FastRoute;
 
- class RouteCollector
 
- {
 
-     /** @var RouteParser */
 
-     protected $routeParser;
 
-     /** @var DataGenerator */
 
-     protected $dataGenerator;
 
-     /** @var string */
 
-     protected $currentGroupPrefix;
 
-     /**
 
-      * Constructs a route collector.
 
-      *
 
-      * @param RouteParser   $routeParser
 
-      * @param DataGenerator $dataGenerator
 
-      */
 
-     public function __construct(RouteParser $routeParser, DataGenerator $dataGenerator)
 
-     {
 
-         $this->routeParser = $routeParser;
 
-         $this->dataGenerator = $dataGenerator;
 
-         $this->currentGroupPrefix = '';
 
-     }
 
-     /**
 
-      * Adds a route to the collection.
 
-      *
 
-      * The syntax used in the $route string depends on the used route parser.
 
-      *
 
-      * @param string|string[] $httpMethod
 
-      * @param string $route
 
-      * @param mixed  $handler
 
-      */
 
-     public function addRoute($httpMethod, $route, $handler)
 
-     {
 
-         $route = $this->currentGroupPrefix . $route;
 
-         $routeDatas = $this->routeParser->parse($route);
 
-         foreach ((array) $httpMethod as $method) {
 
-             foreach ($routeDatas as $routeData) {
 
-                 $this->dataGenerator->addRoute($method, $routeData, $handler);
 
-             }
 
-         }
 
-     }
 
-     /**
 
-      * Create a route group with a common prefix.
 
-      *
 
-      * All routes created in the passed callback will have the given group prefix prepended.
 
-      *
 
-      * @param string $prefix
 
-      * @param callable $callback
 
-      */
 
-     public function addGroup($prefix, callable $callback)
 
-     {
 
-         $previousGroupPrefix = $this->currentGroupPrefix;
 
-         $this->currentGroupPrefix = $previousGroupPrefix . $prefix;
 
-         $callback($this);
 
-         $this->currentGroupPrefix = $previousGroupPrefix;
 
-     }
 
-     /**
 
-      * Adds a GET route to the collection
 
-      * 
 
-      * This is simply an alias of $this->addRoute('GET', $route, $handler)
 
-      *
 
-      * @param string $route
 
-      * @param mixed  $handler
 
-      */
 
-     public function get($route, $handler)
 
-     {
 
-         $this->addRoute('GET', $route, $handler);
 
-     }
 
-     /**
 
-      * Adds a POST route to the collection
 
-      * 
 
-      * This is simply an alias of $this->addRoute('POST', $route, $handler)
 
-      *
 
-      * @param string $route
 
-      * @param mixed  $handler
 
-      */
 
-     public function post($route, $handler)
 
-     {
 
-         $this->addRoute('POST', $route, $handler);
 
-     }
 
-     /**
 
-      * Adds a PUT route to the collection
 
-      * 
 
-      * This is simply an alias of $this->addRoute('PUT', $route, $handler)
 
-      *
 
-      * @param string $route
 
-      * @param mixed  $handler
 
-      */
 
-     public function put($route, $handler)
 
-     {
 
-         $this->addRoute('PUT', $route, $handler);
 
-     }
 
-     /**
 
-      * Adds a DELETE route to the collection
 
-      * 
 
-      * This is simply an alias of $this->addRoute('DELETE', $route, $handler)
 
-      *
 
-      * @param string $route
 
-      * @param mixed  $handler
 
-      */
 
-     public function delete($route, $handler)
 
-     {
 
-         $this->addRoute('DELETE', $route, $handler);
 
-     }
 
-     /**
 
-      * Adds a PATCH route to the collection
 
-      * 
 
-      * This is simply an alias of $this->addRoute('PATCH', $route, $handler)
 
-      *
 
-      * @param string $route
 
-      * @param mixed  $handler
 
-      */
 
-     public function patch($route, $handler)
 
-     {
 
-         $this->addRoute('PATCH', $route, $handler);
 
-     }
 
-     /**
 
-      * Adds a HEAD route to the collection
 
-      *
 
-      * This is simply an alias of $this->addRoute('HEAD', $route, $handler)
 
-      *
 
-      * @param string $route
 
-      * @param mixed  $handler
 
-      */
 
-     public function head($route, $handler)
 
-     {
 
-         $this->addRoute('HEAD', $route, $handler);
 
-     }
 
-     /**
 
-      * Returns the collected route data, as provided by the data generator.
 
-      *
 
-      * @return array
 
-      */
 
-     public function getData()
 
-     {
 
-         return $this->dataGenerator->getData();
 
-     }
 
- }
 
 
  |