Exemple #1
0
 /**
  * @param Request $request
  * @return string[]
  */
 protected function breakdownRoute(Request $request)
 {
     $actionName = '';
     $parts = explode('/', rtrim($request->getPathInfo(), '/'));
     array_shift($parts);
     if ($prefix = $this->config->get(self::CONFIG_KEY_PREFIX)) {
         if (count($parts) && $parts[0] == $prefix) {
             array_shift($parts);
         }
     }
     $subnamespaces = $this->config->get(self::CONFIG_KEY_ACTION_SUBNAMESPACES, []);
     if (is_array($subnamespaces) && count($subnamespaces) && count($parts) && in_array($parts[0], $subnamespaces)) {
         $actionName = $parts[0] . '\\';
         array_shift($parts);
     }
     $actionName .= count($parts) ? array_shift($parts) : self::DEFAULT_ACTION;
     $params = [];
     while (count($parts)) {
         $params[array_shift($parts)] = count($parts) ? array_shift($parts) : null;
     }
     return [$actionName, $params];
 }