Gets the RouteCollection instance associated with this Router.
public getRouteCollection ( ) : |
||
return | A RouteCollection instance |
/** * @param Router $router * @param $badges * @param string $packagist_route */ public function __construct(Router $router, array $badges, array $allInBadges, $packagist_route = 'pugx_badge_packagist') { $this->router = $router; $this->badges = $badges; $this->allInBadges = $allInBadges; $this->packagistRoute = $packagist_route; $this->routes = $this->router->getRouteCollection(); }
/** * SiteMapService constructor. * * @param EntityManager $em * @param Router $router */ public function __construct(EntityManager $em, $router) { $this->em = $em; $this->router = $router; $this->routes = $this->router->getRouteCollection()->all(); $this->siteMapOptionService = new SiteMapOptionService(); $this->siteMapControllerService = new SiteMapControllerService($em, $router); }
public function getPreprocessorWriterResponse($preprocessorRouteName, array $attributes, Request $currentRequest) { // For localhost, the way is the same as for public to private forward. $attributes['_controller'] = $this->router->getRouteCollection()->get($preprocessorRouteName)->getDefault('_controller'); $subRequest = $currentRequest->duplicate(null, null, $attributes); $response = $this->kernel->handle($subRequest, HttpKernelInterface::SUB_REQUEST); /* @var $response \Symfony\Component\HttpFoundation\Response */ $response->setStatusCode($response->getStatusCode(), $response->headers->get('ps_status_text', null)); return $response; }
/** * Get routes by bundle dir * * @param string $dir * * @return array|Router */ public function getRoutesByBundleDir($dir) { $routes = $this->router->getRouteCollection()->all(); $resultRoutes = array(); /** @var \Symfony\Component\Routing\Route $route */ foreach ($routes as $name => $route) { if ($this->getBundleNameFromString($dir) == $this->getBundleNameFromString($route->getDefault('_controller'))) { $resultRoutes[] = $name; } } return $resultRoutes; }
public function loadRoutes($path, $options = array()) { $filelocator = new FileLocator($path); $routeloader = new YamlFileLoader($filelocator); $router = new Router($routeloader, $path, $options); $matcher = $router->getMatcher(); $routeCollection = $router->getRouteCollection(); $context = $router->getContext(); $this->dispatcher->addSubscriber(new HttpKernel\EventListener\RouterListener($matcher)); $this->shared['url.generator'] = new UrlGenerator($routeCollection, $context); $this->router = $router; return $router->getRouteCollection(); }
/** * Returns the list of routes that should be rendered. * * @return Symfony\Component\Routing\Route[] List of routes that should be rendered. */ protected function getRoutes() { if (0 === count($this->routes)) { return $this->router->getRouteCollection()->all(); } $routes = []; foreach ($this->routes as $name) { $route = $this->router->getRouteCollection()->get($name); if (null !== $route) { $routes[$name] = $route; } } return $routes; }
/** * Getting routes * * @return ArrayCollection */ private function getRoutes() { $routeCollection = $this->router->getRouteCollection(); $routes = new ArrayCollection(); foreach ($routeCollection as $name => $route) { if ($route instanceof Route) { $options = $route->getOptions(); if (isset($options['expose']) && $options['expose'] === true) { $methods = $route->getMethods(); $routes->set($name, array('method' => reset($methods), 'pattern' => $route->getPath())); } } } return $routes; }
public function __construct(Router $router, ContainerInterface $container) { $this->routeCollection = $router->getRouteCollection(); $this->translator = $container->get('translator'); $this->translationDomain = $container->getParameter('symfonian_id.admin.translation_domain'); $this->authorizationChecker = $container->get('security.authorization_checker'); }
/** * {@inheritdoc} */ public function register(Container $app) { /** * Holds information about the current request * * @return RequestContext */ $app['request_context'] = function () use($app) { $context = new RequestContext(); // set default http & https ports if not set $context->setHttpPort(isset($app['request.http_port']) ? $app['request.http_port'] : 80); $context->setHttpsPort(isset($app['request.https_port']) ? $app['request.https_port'] : 443); return $context; }; /** * Matches URL based on a set of routes. * * @return UrlMatcher */ $app['matcher'] = function () use($app) { return new UrlMatcher($app['router'], $app['request_context']); }; /** * Router */ $options = array('cache_dir' => true === $app['use_cache'] ? __DIR__ . '/' . self::CACHE_DIRECTORY : null, 'debug' => true); $app['router'] = function () use($app, $options) { $router = new Router($app['config.loader'], sprintf(self::CONFIG_ROUTES_FILE, $app['env']), $options); return $router->getRouteCollection(); }; }
public function getRouteCollection() { $collection = parent::getRouteCollection(); if (null !== $this->appendCollection) { $collection->addCollection($this->appendCollection); $this->appendCollection = null; } return $collection; }
/** * Based on $baseName, this function returns all routes that match this basename.. * So if you pass graviton.cont.action; it will return all route names that start with the same. * In our routing naming schema, this means all the routes from the same controller. * * @param string $baseName basename * * @return array array with matching routes */ public function getRoutesByBasename($baseName) { $ret = array(); foreach ($this->router->getRouteCollection()->all() as $routeName => $route) { if (preg_match('/^' . $baseName . '/', $routeName)) { $ret[$routeName] = $route; } } return $ret; }
/** * Returns the route that matches the given controller name. * * @param string $controller Name of the controller * * @return Route */ protected function getRoute($controller) { $routes = $this->router->getRouteCollection()->all(); foreach ($routes as $name => $route) { if ($controller === $route->getDefault('_controller')) { return [$name, $route]; } } return null; }
/** * Try to get controller & parameters with mapping options. * * If failed to find options, then return the input values. * * @param string $routeName * @param string[] $parameters The route parameters to convert * @return array[] An array with: the legacy controller name, then the parameters array */ public final function getLegacyOptions($routeName, $parameters = array()) { $legacyController = $routeName; $legacyParameters = $parameters; $route = $this->router->getRouteCollection()->get($routeName); if ($route) { if ($route->hasDefault('_legacy_controller')) { $legacyController = $route->getDefault('_legacy_controller'); if ($route->hasDefault('_legacy_param_mapper_class') && $route->hasDefault('_legacy_param_mapper_method')) { $class = $route->getDefault('_legacy_param_mapper_class'); $method = $route->getDefault('_legacy_param_mapper_method'); $method = (new \ReflectionClass('\\' . $class))->getMethod($method); $legacyParameters = $method->invoke($method->isStatic() ? null : $method->getDeclaringClass()->newInstance(), $parameters); } } } return array($legacyController, $legacyParameters); }
/** * Creates a Node object based on given $routeName or current route. * * @param string|null $routeName * * @return Node */ public function createPageFromRoute($routeName = null) { if (!$routeName) { $routeName = $this->pageStack->getRequest()->attributes->get('_route'); if (!$routeName) { throw new \RuntimeException('Could not detect route name'); } } $reflection = new \ReflectionClass($this->router->getGenerator()); $key = 'jarves_routes'; $cache = $this->cacher->getFastCache($key); $validCache = false; $routes = []; if ($cache) { $validCache = $cache['time'] === filemtime($reflection->getFileName()) && isset($cache['routes']) && is_string($cache['routes']); if ($validCache) { $routes = unserialize($cache['routes']); } } if (!$validCache) { $routes = $this->router->getRouteCollection()->all(); $this->cacher->setFastCache($key, ['time' => filemtime($reflection->getFileName()), 'routes' => serialize($routes)]); } if (!isset($routes[$routeName])) { throw new \RuntimeException("Route with name `{$routeName}` does not exist"); } $route = $routes[$routeName]; $url = $this->router->generate($routeName, $this->pageStack->getRequest()->attributes->all()); $page = Node::createPage($route->getOption('title'), parse_url($url)['path'], $route->getOption('theme'), $route->getOption('layout')); if ($route->getOption('meta')) { foreach ((array) $route->getOption('meta') as $key => $value) { $page->meta->set($key, $value); } } return $page; }
/** * @param Router $router */ public function importRouter(Router $router) { $routes = $this->findAll(); $toRemove = []; /** @var Route $route */ foreach ($routes as $route) { $toRemove[$route->getRoute()] = $route; } /** @var $collection RouteCollection */ $collection = $router->getRouteCollection(); $allRoutes = $collection->all(); /** * @var string $routeName * @var SymfonyRoute $route */ foreach ($allRoutes as $routeName => $route) { $this->importRoute($routeName, $route); unset($toRemove[$routeName]); } /** * @var string $routeName * @var Route $route */ foreach ($toRemove as $routeName => $route) { /** @var MenuItem $item */ foreach ($route->getItems() as $item) { $parent = $item->getParent(); /** @var MenuItem $child */ foreach ($item->getChildren() as $child) { $child->setParent($parent); $this->menuItemRepo->save($child); } } $this->removeRoute($route); } }
/** * Standard constructor. * @param Router $router Router containing the callback route. * @param RequestContext $context The context to use for generating URLs. * @param string $callbackRoute The route which should be used as a callback * for hub requests. */ public function __construct(Router $router, RequestContext $context, $callbackRoute = 'pubsubhubbub') { $this->generator = new UrlGenerator($router->getRouteCollection(), $context); $this->callbackRoute = $callbackRoute; }
public function generateMainApi($version) { $docParser = new PhpDocParser(); // get all known routes $routes = $this->router->getRouteCollection()->all(); /* @var $routes Route[] */ // remove debug/dev routes. Keeps only 'ps_*' routes $routes = array_filter($routes, function ($key) { return strpos($key, 'ps_') === 0; }, ARRAY_FILTER_USE_KEY); // parse to classify by API (public/private, writer/reader) and find API version $versionMaxFound = 0; $tags = []; $paths = []; foreach ($routes as $routeName => $route) { $path = explode('/', $route->getPath(), 7); array_shift($path); if (array_shift($path) === 'public') { $relativePath = implode('/', $path); $rw = array_shift($path); $domain = array_shift($path); $v = array_shift($path); if (strpos($v, 'v') !== 0) { continue; } else { $v = substr($v, 1); } if ($v > $versionMaxFound) { $versionMaxFound = $v; } if ($v <= $version) { // Getting PHPDoc for this route, check if api_public present on the corresponding action. $controller = $route->getDefault('_controller'); $method = new \ReflectionMethod($controller); $annotations = $docParser->parse($method->getDocComment(), 'api_public'); if ($annotations === false) { continue; // no 'api_public', then do not generate this method on the doc. } // we keep the route! $routes[$rw][$domain][$v][$routeName] = $route; $routes['all'][$routeName] = $route; // insert tag $tag = '/' . $rw . '/' . $domain; if (!array_key_exists($tag, $tags)) { $tags[$tag] = ['name' => $domain . ' ' . $rw, 'description' => 'TODO', 'externalDocs' => ['description' => 'TODO', 'url' => 'http://toto.com']]; } // parse path parameters $parameters = []; foreach ($route->compile()->getVariables() as $variable) { $parameters[] = ['in' => 'path', 'name' => $variable, 'description' => '???', 'required' => false, 'type' => 'string']; } foreach ($route->getDefaults() as $key => $routeParameterDefault) { // TODO : default à mettre dans le format Swagger //dump($routeParameterDefault); die; } // TODO : en fonction de la methode acceptée dans la route ! $paths[$relativePath] = ['get' => ['tags' => [$domain . ' ' . $rw], 'summary' => array_key_exists('doc_summary', $annotations) ? $annotations['doc_summary'] : '', 'description' => array_key_exists('doc_description', $annotations) ? nl2br($annotations['doc_description']) : '', 'operationId' => '/' . $rw . '/' . $domain . '/v' . $v . '/' . array_shift($path), 'consumes' => ["application/json", "application/xml"], 'produces' => ["application/xml", "application/json"], 'parameters' => $parameters, 'responses' => [], 'security' => []], 'put' => [], 'post' => []]; } } unset($routes[$routeName]); } $version = min($version, $versionMaxFound); // downgrade requested version to the max found (means the last one) $securityDefinitions = []; // TODO $definitions = []; // TODO $swagger = ['swagger' => '2.0', 'info' => ['description' => 'Test purposes', 'version' => $version, 'title' => 'PrestaShop Public API', 'termsOfService' => 'http://hohoho.com', 'contact' => ['email' => '*****@*****.**'], 'license' => ['name' => 'GPL ?', 'url' => 'http://www.perdu.fr']], 'host' => 'www.monhote.com', 'basePath' => '/public/', 'tags' => array_values($tags), 'schemes' => ['http'], 'paths' => $paths, 'securityDefinitions' => $securityDefinitions, 'definitions' => $definitions, 'externalDocs' => ['description' => 'Hohoho !', 'url' => 'http://www.prestashop.com']]; /* // example from petstore/Swagger $data = <<<EOF {"swagger":"2.0","info":{"description":"This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters.","version":"1.0.0","title":"Swagger Petstore","termsOfService":"http://swagger.io/terms/","contact":{"email":"*****@*****.**"},"license":{"name":"Apache 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0.html"}},"host":"petstore.swagger.io","basePath":"/v2", "tags":[{"name":"pet","description":"Everything about your Pets","externalDocs":{"description":"Find out more","url":"http://swagger.io"}},{"name":"store","description":"Access to Petstore orders"},{"name":"user","description":"Operations about user","externalDocs":{"description":"Find out more about our store","url":"http://swagger.io"}}], "schemes":["http"], "paths":{"/pet":{"post":{"tags":["pet"],"summary":"Add a new pet to the store","description":"","operationId":"addPet","consumes":["application/json","application/xml"],"produces":["application/xml","application/json"],"parameters":[{"in":"body","name":"body","description":"Pet object that needs to be added to the store","required":true,"schema":{"\$ref":"#/definitions/Pet"}}],"responses":{"405":{"description":"Invalid input"}},"security":[{"petstore_auth":["write:pets","read:pets"]}]},"put":{"tags":["pet"],"summary":"Update an existing pet","description":"","operationId":"updatePet","consumes":["application/json","application/xml"],"produces":["application/xml","application/json"],"parameters":[{"in":"body","name":"body","description":"Pet object that needs to be added to the store","required":true,"schema":{"\$ref":"#/definitions/Pet"}}],"responses":{"400":{"description":"Invalid ID supplied"},"404":{"description":"Pet not found"},"405":{"description":"Validation exception"}},"security":[{"petstore_auth":["write:pets","read:pets"]}]}},"/pet/findByStatus":{"get":{"tags":["pet"],"summary":"Finds Pets by status","description":"Multiple status values can be provided with comma seperated strings","operationId":"findPetsByStatus","produces":["application/xml","application/json"],"parameters":[{"name":"status","in":"query","description":"Status values that need to be considered for filter","required":true,"type":"array","items":{"type":"string","enum":["available","pending","sold"],"default":"available"},"collectionFormat":"csv"}],"responses":{"200":{"description":"successful operation","schema":{"type":"array","items":{"\$ref":"#/definitions/Pet"}}},"400":{"description":"Invalid status value"}},"security":[{"petstore_auth":["write:pets","read:pets"]}]}},"/pet/findByTags":{"get":{"tags":["pet"],"summary":"Finds Pets by tags","description":"Muliple tags can be provided with comma seperated strings. Use tag1, tag2, tag3 for testing.","operationId":"findPetsByTags","produces":["application/xml","application/json"],"parameters":[{"name":"tags","in":"query","description":"Tags to filter by","required":true,"type":"array","items":{"type":"string"},"collectionFormat":"csv"}],"responses":{"200":{"description":"successful operation","schema":{"type":"array","items":{"\$ref":"#/definitions/Pet"}}},"400":{"description":"Invalid tag value"}},"security":[{"petstore_auth":["write:pets","read:pets"]}]}},"/pet/{petId}":{"get":{"tags":["pet"],"summary":"Find pet by ID","description":"Returns a single pet","operationId":"getPetById","produces":["application/xml","application/json"],"parameters":[{"name":"petId","in":"path","description":"ID of pet to return","required":true,"type":"integer","format":"int64"}],"responses":{"200":{"description":"successful operation","schema":{"\$ref":"#/definitions/Pet"}},"400":{"description":"Invalid ID supplied"},"404":{"description":"Pet not found"}},"security":[{"api_key":[]}]},"post":{"tags":["pet"],"summary":"Updates a pet in the store with form data","description":"","operationId":"updatePetWithForm","consumes":["application/x-www-form-urlencoded"],"produces":["application/xml","application/json"],"parameters":[{"name":"petId","in":"path","description":"ID of pet that needs to be updated","required":true,"type":"integer","format":"int64"},{"name":"name","in":"formData","description":"Updated name of the pet","required":false,"type":"string"},{"name":"status","in":"formData","description":"Updated status of the pet","required":false,"type":"string"}],"responses":{"405":{"description":"Invalid input"}},"security":[{"petstore_auth":["write:pets","read:pets"]}]},"delete":{"tags":["pet"],"summary":"Deletes a pet","description":"","operationId":"deletePet","produces":["application/xml","application/json"],"parameters":[{"name":"api_key","in":"header","required":false,"type":"string"},{"name":"petId","in":"path","description":"Pet id to delete","required":true,"type":"integer","format":"int64"}],"responses":{"400":{"description":"Invalid pet value"}},"security":[{"petstore_auth":["write:pets","read:pets"]}]}},"/pet/{petId}/uploadImage":{"post":{"tags":["pet"],"summary":"uploads an image","description":"","operationId":"uploadFile","consumes":["multipart/form-data"],"produces":["application/json"],"parameters":[{"name":"petId","in":"path","description":"ID of pet to update","required":true,"type":"integer","format":"int64"},{"name":"additionalMetadata","in":"formData","description":"Additional data to pass to server","required":false,"type":"string"},{"name":"file","in":"formData","description":"file to upload","required":false,"type":"file"}],"responses":{"200":{"description":"successful operation","schema":{"\$ref":"#/definitions/ApiResponse"}}},"security":[{"petstore_auth":["write:pets","read:pets"]}]}},"/store/inventory":{"get":{"tags":["store"],"summary":"Returns pet inventories by status","description":"Returns a map of status codes to quantities","operationId":"getInventory","produces":["application/json"],"parameters":[],"responses":{"200":{"description":"successful operation","schema":{"type":"object","additionalProperties":{"type":"integer","format":"int32"}}}},"security":[{"api_key":[]}]}},"/store/order":{"post":{"tags":["store"],"summary":"Place an order for a pet","description":"","operationId":"placeOrder","produces":["application/xml","application/json"],"parameters":[{"in":"body","name":"body","description":"order placed for purchasing the pet","required":true,"schema":{"\$ref":"#/definitions/Order"}}],"responses":{"200":{"description":"successful operation","schema":{"\$ref":"#/definitions/Order"}},"400":{"description":"Invalid Order"}}}},"/store/order/{orderId}":{"get":{"tags":["store"],"summary":"Find purchase order by ID","description":"For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions","operationId":"getOrderById","produces":["application/xml","application/json"],"parameters":[{"name":"orderId","in":"path","description":"ID of pet that needs to be fetched","required":true,"type":"integer","maximum":5.0,"minimum":1.0,"format":"int64"}],"responses":{"200":{"description":"successful operation","schema":{"\$ref":"#/definitions/Order"}},"400":{"description":"Invalid ID supplied"},"404":{"description":"Order not found"}}},"delete":{"tags":["store"],"summary":"Delete purchase order by ID","description":"For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors","operationId":"deleteOrder","produces":["application/xml","application/json"],"parameters":[{"name":"orderId","in":"path","description":"ID of the order that needs to be deleted","required":true,"type":"string","minimum":1.0}],"responses":{"400":{"description":"Invalid ID supplied"},"404":{"description":"Order not found"}}}},"/user":{"post":{"tags":["user"],"summary":"Create user","description":"This can only be done by the logged in user.","operationId":"createUser","produces":["application/xml","application/json"],"parameters":[{"in":"body","name":"body","description":"Created user object","required":true,"schema":{"\$ref":"#/definitions/User"}}],"responses":{"default":{"description":"successful operation"}}}},"/user/createWithArray":{"post":{"tags":["user"],"summary":"Creates list of users with given input array","description":"","operationId":"createUsersWithArrayInput","produces":["application/xml","application/json"],"parameters":[{"in":"body","name":"body","description":"List of user object","required":true,"schema":{"type":"array","items":{"\$ref":"#/definitions/User"}}}],"responses":{"default":{"description":"successful operation"}}}},"/user/createWithList":{"post":{"tags":["user"],"summary":"Creates list of users with given input array","description":"","operationId":"createUsersWithListInput","produces":["application/xml","application/json"],"parameters":[{"in":"body","name":"body","description":"List of user object","required":true,"schema":{"type":"array","items":{"\$ref":"#/definitions/User"}}}],"responses":{"default":{"description":"successful operation"}}}},"/user/login":{"get":{"tags":["user"],"summary":"Logs user into the system","description":"","operationId":"loginUser","produces":["application/xml","application/json"],"parameters":[{"name":"username","in":"query","description":"The user name for login","required":true,"type":"string"},{"name":"password","in":"query","description":"The password for login in clear text","required":true,"type":"string"}],"responses":{"200":{"description":"successful operation","schema":{"type":"string"},"headers":{"X-Rate-Limit":{"type":"integer","format":"int32","description":"calls per hour allowed by the user"},"X-Expires-After":{"type":"string","format":"date-time","description":"date in UTC when toekn expires"}}},"400":{"description":"Invalid username/password supplied"}}}},"/user/logout":{"get":{"tags":["user"],"summary":"Logs out current logged in user session","description":"","operationId":"logoutUser","produces":["application/xml","application/json"],"parameters":[],"responses":{"default":{"description":"successful operation"}}}},"/user/{username}":{"get":{"tags":["user"],"summary":"Get user by user name","description":"","operationId":"getUserByName","produces":["application/xml","application/json"],"parameters":[{"name":"username","in":"path","description":"The name that needs to be fetched. Use user1 for testing. ","required":true,"type":"string"}],"responses":{"200":{"description":"successful operation","schema":{"\$ref":"#/definitions/User"}},"400":{"description":"Invalid username supplied"},"404":{"description":"User not found"}}},"put":{"tags":["user"],"summary":"Updated user","description":"This can only be done by the logged in user.","operationId":"updateUser","produces":["application/xml","application/json"],"parameters":[{"name":"username","in":"path","description":"name that need to be deleted","required":true,"type":"string"},{"in":"body","name":"body","description":"Updated user object","required":true,"schema":{"\$ref":"#/definitions/User"}}],"responses":{"400":{"description":"Invalid user supplied"},"404":{"description":"User not found"}}},"delete":{"tags":["user"],"summary":"Delete user","description":"This can only be done by the logged in user.","operationId":"deleteUser","produces":["application/xml","application/json"],"parameters":[{"name":"username","in":"path","description":"The name that needs to be deleted","required":true,"type":"string"}],"responses":{"400":{"description":"Invalid username supplied"},"404":{"description":"User not found"}}}}},"securityDefinitions":{"petstore_auth":{"type":"oauth2","authorizationUrl":"http://petstore.swagger.io/api/oauth/dialog","flow":"implicit","scopes":{"write:pets":"modify pets in your account","read:pets":"read your pets"}},"api_key":{"type":"apiKey","name":"api_key","in":"header"}},"definitions":{"Order":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"petId":{"type":"integer","format":"int64"},"quantity":{"type":"integer","format":"int32"},"shipDate":{"type":"string","format":"date-time"},"status":{"type":"string","description":"Order Status","enum":["placed","approved","delivered"]},"complete":{"type":"boolean","default":false}},"xml":{"name":"Order"}},"Category":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"}},"xml":{"name":"Category"}},"User":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"email":{"type":"string"},"password":{"type":"string"},"phone":{"type":"string"},"userStatus":{"type":"integer","format":"int32","description":"User Status"}},"xml":{"name":"User"}},"Tag":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"}},"xml":{"name":"Tag"}},"Pet":{"type":"object","required":["name","photoUrls"],"properties":{"id":{"type":"integer","format":"int64"},"category":{"\$ref":"#/definitions/Category"},"name":{"type":"string","example":"doggie"},"photoUrls":{"type":"array","xml":{"name":"photoUrl","wrapped":true},"items":{"type":"string"}},"tags":{"type":"array","xml":{"name":"tag","wrapped":true},"items":{"\$ref":"#/definitions/Tag"}},"status":{"type":"string","description":"pet status in the store","enum":["available","pending","sold"]}},"xml":{"name":"Pet"}},"ApiResponse":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"type":{"type":"string"},"message":{"type":"string"}}}},"externalDocs":{"description":"Find out more about Swagger","url":"http://swagger.io"}} EOF; */ return $swagger; }
/** * RpcHandler constructor. * * @param Reader $reader * @param ControllerResolverInterface $resolver * @param RouterCollection $routerCollection * @param Router $router */ public function __construct(Reader $reader, ControllerResolverInterface $resolver, RouterCollection $routerCollection, Router $router) { $this->routerCollection = $routerCollection; parent::__construct($resolver, $reader, $router->getRouteCollection()); }
/** * Check that views for the front routes exists. */ public function testTargetFrontViewsExists() { /** @var Request $request */ $request = $this->getContainer()->get('request'); /** @var EventDispatcherInterface $eventDispatcher */ $eventDispatcher = $this->getContainer()->get('event_dispatcher'); // we are not going to do any actual rendering, so a mock ParserContext should be enough /** @var ParserContext $parserContext */ $parserContext = $this->getMockBuilder('Thelia\\Core\\Template\\ParserContext')->disableOriginalConstructor()->getMock(); $templateHelper = new TheliaTemplateHelper(); $parser = new SmartyParser($request, $eventDispatcher, $parserContext, $templateHelper); $parser->setTemplateDefinition($templateHelper->getActiveFrontTemplate()); $frontRouterFileLoader = $this->routerFileLoaders[static::$routingFilesPathFront]; foreach (static::$routingFiles[static::$routingFilesPathFront] as $fileName) { $router = new Router($frontRouterFileLoader, $fileName); /** @var Route $route */ foreach ($router->getRouteCollection() as $route) { if (null === ($view = $route->getDefault('_view'))) { continue; } $this->assertTrue($parser->templateExists($view . '.html'), "Front view '{$view}' does not exist."); } } }
/** * Returns the route that matches the given route name. * * @param string $route Name of the route * * @return Route */ protected function getRoute($name) { return $this->router->getRouteCollection()->get($name); }