87 lines
2.4 KiB
PHP
87 lines
2.4 KiB
PHP
<?php
|
|
|
|
/*
|
|
* This file is part of the Symfony package.
|
|
*
|
|
* (c) Fabien Potencier <fabien@symfony.com>
|
|
*
|
|
* For the full copyright and license information, please view the LICENSE
|
|
* file that was distributed with this source code.
|
|
*/
|
|
|
|
namespace Symfony\Component\Routing\Loader\Configurator;
|
|
|
|
// For the phpdoc to remain compatible with the generation of per-app Routes class,
|
|
// this file should have no "use" statements: all symbols referenced by
|
|
// the phpdoc need to be in the current namespace or be root-scoped.
|
|
|
|
/**
|
|
* This class provides array-shapes for configuring the routes of an application.
|
|
*
|
|
* Example:
|
|
*
|
|
* ```php
|
|
* // config/routes.php
|
|
* namespace Symfony\Component\Routing\Loader\Configurator;
|
|
*
|
|
* return Routes::config([
|
|
* 'controllers' => [
|
|
* 'resource' => 'routing.controllers',
|
|
* ],
|
|
* ]);
|
|
* ```
|
|
*
|
|
* @psalm-type RouteConfig = array{
|
|
* path: string|array<string,string>,
|
|
* controller?: string,
|
|
* methods?: string|list<string>,
|
|
* requirements?: array<string,string>,
|
|
* defaults?: array<string,mixed>,
|
|
* options?: array<string,mixed>,
|
|
* host?: string|array<string,string>,
|
|
* schemes?: string|list<string>,
|
|
* condition?: string,
|
|
* locale?: string,
|
|
* format?: string,
|
|
* utf8?: bool,
|
|
* stateless?: bool,
|
|
* }
|
|
* @psalm-type ImportConfig = array{
|
|
* resource: string,
|
|
* type?: string,
|
|
* exclude?: string|list<string>,
|
|
* prefix?: string|array<string,string>,
|
|
* name_prefix?: string,
|
|
* trailing_slash_on_root?: bool,
|
|
* controller?: string,
|
|
* methods?: string|list<string>,
|
|
* requirements?: array<string,string>,
|
|
* defaults?: array<string,mixed>,
|
|
* options?: array<string,mixed>,
|
|
* host?: string|array<string,string>,
|
|
* schemes?: string|list<string>,
|
|
* condition?: string,
|
|
* locale?: string,
|
|
* format?: string,
|
|
* utf8?: bool,
|
|
* stateless?: bool,
|
|
* }
|
|
* @psalm-type AliasConfig = array{
|
|
* alias: string,
|
|
* deprecated?: array{package:string, version:string, message?:string},
|
|
* }
|
|
* @psalm-type RoutesConfig = array<string, RouteConfig|ImportConfig|AliasConfig|array<string, RouteConfig|ImportConfig|AliasConfig>>
|
|
*/
|
|
class RoutesReference
|
|
{
|
|
/**
|
|
* @param RoutesConfig $config
|
|
*
|
|
* @psalm-return RoutesConfig
|
|
*/
|
|
public static function config(array $config): array
|
|
{
|
|
return $config;
|
|
}
|
|
}
|