* * 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, * controller?: string, * methods?: string|list, * requirements?: array, * defaults?: array, * options?: array, * host?: string|array, * schemes?: string|list, * condition?: string, * locale?: string, * format?: string, * utf8?: bool, * stateless?: bool, * } * @psalm-type ImportConfig = array{ * resource: string, * type?: string, * exclude?: string|list, * prefix?: string|array, * name_prefix?: string, * trailing_slash_on_root?: bool, * controller?: string, * methods?: string|list, * requirements?: array, * defaults?: array, * options?: array, * host?: string|array, * schemes?: string|list, * 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> */ class RoutesReference { /** * @param RoutesConfig $config * * @psalm-return RoutesConfig */ public static function config(array $config): array { return $config; } }