reference.php 97 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692
  1. <?php
  2. // This file is auto-generated and is for apps only. Bundles SHOULD NOT rely on its content.
  3. namespace Symfony\Component\DependencyInjection\Loader\Configurator;
  4. /**
  5. * This class provides array-shapes for configuring the services and bundles of an application.
  6. *
  7. * Services declared with the config() method below are autowired and autoconfigured by default.
  8. *
  9. * This is for apps only. Bundles SHOULD NOT use it.
  10. *
  11. * Example:
  12. *
  13. * ```php
  14. * // config/services.php
  15. * namespace Symfony\Component\DependencyInjection\Loader\Configurator;
  16. *
  17. * return App::config([
  18. * 'services' => [
  19. * 'App\\' => [
  20. * 'resource' => '../src/',
  21. * ],
  22. * ],
  23. * ]);
  24. * ```
  25. *
  26. * @psalm-type ImportsConfig = list<string|array{
  27. * resource: string,
  28. * type?: string|null,
  29. * ignore_errors?: bool,
  30. * }>
  31. * @psalm-type ParametersConfig = array<string, scalar|\UnitEnum|array<scalar|\UnitEnum|array<mixed>|null>|null>
  32. * @psalm-type ArgumentsType = list<mixed>|array<string, mixed>
  33. * @psalm-type CallType = array<string, ArgumentsType>|array{0:string, 1?:ArgumentsType, 2?:bool}|array{method:string, arguments?:ArgumentsType, returns_clone?:bool}
  34. * @psalm-type TagsType = list<string|array<string, array<string, mixed>>> // arrays inside the list must have only one element, with the tag name as the key
  35. * @psalm-type CallbackType = string|array{0:string|ReferenceConfigurator,1:string}|\Closure|ReferenceConfigurator|ExpressionConfigurator
  36. * @psalm-type DeprecationType = array{package: string, version: string, message?: string}
  37. * @psalm-type DefaultsType = array{
  38. * public?: bool,
  39. * tags?: TagsType,
  40. * resource_tags?: TagsType,
  41. * autowire?: bool,
  42. * autoconfigure?: bool,
  43. * bind?: array<string, mixed>,
  44. * }
  45. * @psalm-type InstanceofType = array{
  46. * shared?: bool,
  47. * lazy?: bool|string,
  48. * public?: bool,
  49. * properties?: array<string, mixed>,
  50. * configurator?: CallbackType,
  51. * calls?: list<CallType>,
  52. * tags?: TagsType,
  53. * resource_tags?: TagsType,
  54. * autowire?: bool,
  55. * bind?: array<string, mixed>,
  56. * constructor?: string,
  57. * }
  58. * @psalm-type DefinitionType = array{
  59. * class?: string,
  60. * file?: string,
  61. * parent?: string,
  62. * shared?: bool,
  63. * synthetic?: bool,
  64. * lazy?: bool|string,
  65. * public?: bool,
  66. * abstract?: bool,
  67. * deprecated?: DeprecationType,
  68. * factory?: CallbackType,
  69. * configurator?: CallbackType,
  70. * arguments?: ArgumentsType,
  71. * properties?: array<string, mixed>,
  72. * calls?: list<CallType>,
  73. * tags?: TagsType,
  74. * resource_tags?: TagsType,
  75. * decorates?: string,
  76. * decoration_inner_name?: string,
  77. * decoration_priority?: int,
  78. * decoration_on_invalid?: 'exception'|'ignore'|null,
  79. * autowire?: bool,
  80. * autoconfigure?: bool,
  81. * bind?: array<string, mixed>,
  82. * constructor?: string,
  83. * from_callable?: CallbackType,
  84. * }
  85. * @psalm-type AliasType = string|array{
  86. * alias: string,
  87. * public?: bool,
  88. * deprecated?: DeprecationType,
  89. * }
  90. * @psalm-type PrototypeType = array{
  91. * resource: string,
  92. * namespace?: string,
  93. * exclude?: string|list<string>,
  94. * parent?: string,
  95. * shared?: bool,
  96. * lazy?: bool|string,
  97. * public?: bool,
  98. * abstract?: bool,
  99. * deprecated?: DeprecationType,
  100. * factory?: CallbackType,
  101. * arguments?: ArgumentsType,
  102. * properties?: array<string, mixed>,
  103. * configurator?: CallbackType,
  104. * calls?: list<CallType>,
  105. * tags?: TagsType,
  106. * resource_tags?: TagsType,
  107. * autowire?: bool,
  108. * autoconfigure?: bool,
  109. * bind?: array<string, mixed>,
  110. * constructor?: string,
  111. * }
  112. * @psalm-type StackType = array{
  113. * stack: list<DefinitionType|AliasType|PrototypeType|array<class-string, ArgumentsType|null>>,
  114. * public?: bool,
  115. * deprecated?: DeprecationType,
  116. * }
  117. * @psalm-type ServicesConfig = array{
  118. * _defaults?: DefaultsType,
  119. * _instanceof?: InstanceofType,
  120. * ...<string, DefinitionType|AliasType|PrototypeType|StackType|ArgumentsType|null>
  121. * }
  122. * @psalm-type ExtensionType = array<string, mixed>
  123. * @psalm-type FrameworkConfig = array{
  124. * secret?: scalar|null,
  125. * http_method_override?: bool, // Set true to enable support for the '_method' request parameter to determine the intended HTTP method on POST requests. // Default: false
  126. * allowed_http_method_override?: list<string>|null,
  127. * trust_x_sendfile_type_header?: scalar|null, // Set true to enable support for xsendfile in binary file responses. // Default: "%env(bool:default::SYMFONY_TRUST_X_SENDFILE_TYPE_HEADER)%"
  128. * ide?: scalar|null, // Default: "%env(default::SYMFONY_IDE)%"
  129. * test?: bool,
  130. * default_locale?: scalar|null, // Default: "en"
  131. * set_locale_from_accept_language?: bool, // Whether to use the Accept-Language HTTP header to set the Request locale (only when the "_locale" request attribute is not passed). // Default: false
  132. * set_content_language_from_locale?: bool, // Whether to set the Content-Language HTTP header on the Response using the Request locale. // Default: false
  133. * enabled_locales?: list<scalar|null>,
  134. * trusted_hosts?: list<scalar|null>,
  135. * trusted_proxies?: mixed, // Default: ["%env(default::SYMFONY_TRUSTED_PROXIES)%"]
  136. * trusted_headers?: list<scalar|null>,
  137. * error_controller?: scalar|null, // Default: "error_controller"
  138. * handle_all_throwables?: bool, // HttpKernel will handle all kinds of \Throwable. // Default: true
  139. * csrf_protection?: bool|array{
  140. * enabled?: scalar|null, // Default: null
  141. * stateless_token_ids?: list<scalar|null>,
  142. * check_header?: scalar|null, // Whether to check the CSRF token in a header in addition to a cookie when using stateless protection. // Default: false
  143. * cookie_name?: scalar|null, // The name of the cookie to use when using stateless protection. // Default: "csrf-token"
  144. * },
  145. * form?: bool|array{ // Form configuration
  146. * enabled?: bool, // Default: true
  147. * csrf_protection?: array{
  148. * enabled?: scalar|null, // Default: null
  149. * token_id?: scalar|null, // Default: null
  150. * field_name?: scalar|null, // Default: "_token"
  151. * field_attr?: array<string, scalar|null>,
  152. * },
  153. * },
  154. * http_cache?: bool|array{ // HTTP cache configuration
  155. * enabled?: bool, // Default: false
  156. * debug?: bool, // Default: "%kernel.debug%"
  157. * trace_level?: "none"|"short"|"full",
  158. * trace_header?: scalar|null,
  159. * default_ttl?: int,
  160. * private_headers?: list<scalar|null>,
  161. * skip_response_headers?: list<scalar|null>,
  162. * allow_reload?: bool,
  163. * allow_revalidate?: bool,
  164. * stale_while_revalidate?: int,
  165. * stale_if_error?: int,
  166. * terminate_on_cache_hit?: bool,
  167. * },
  168. * esi?: bool|array{ // ESI configuration
  169. * enabled?: bool, // Default: false
  170. * },
  171. * ssi?: bool|array{ // SSI configuration
  172. * enabled?: bool, // Default: false
  173. * },
  174. * fragments?: bool|array{ // Fragments configuration
  175. * enabled?: bool, // Default: false
  176. * hinclude_default_template?: scalar|null, // Default: null
  177. * path?: scalar|null, // Default: "/_fragment"
  178. * },
  179. * profiler?: bool|array{ // Profiler configuration
  180. * enabled?: bool, // Default: false
  181. * collect?: bool, // Default: true
  182. * collect_parameter?: scalar|null, // The name of the parameter to use to enable or disable collection on a per request basis. // Default: null
  183. * only_exceptions?: bool, // Default: false
  184. * only_main_requests?: bool, // Default: false
  185. * dsn?: scalar|null, // Default: "file:%kernel.cache_dir%/profiler"
  186. * collect_serializer_data?: bool, // Enables the serializer data collector and profiler panel. // Default: false
  187. * },
  188. * workflows?: bool|array{
  189. * enabled?: bool, // Default: false
  190. * workflows?: array<string, array{ // Default: []
  191. * audit_trail?: bool|array{
  192. * enabled?: bool, // Default: false
  193. * },
  194. * type?: "workflow"|"state_machine", // Default: "state_machine"
  195. * marking_store?: array{
  196. * type?: "method",
  197. * property?: scalar|null,
  198. * service?: scalar|null,
  199. * },
  200. * supports?: list<scalar|null>,
  201. * definition_validators?: list<scalar|null>,
  202. * support_strategy?: scalar|null,
  203. * initial_marking?: list<scalar|null>,
  204. * events_to_dispatch?: list<string>|null,
  205. * places?: list<array{ // Default: []
  206. * name: scalar|null,
  207. * metadata?: list<mixed>,
  208. * }>,
  209. * transitions: list<array{ // Default: []
  210. * name: string,
  211. * guard?: string, // An expression to block the transition.
  212. * from?: list<array{ // Default: []
  213. * place: string,
  214. * weight?: int, // Default: 1
  215. * }>,
  216. * to?: list<array{ // Default: []
  217. * place: string,
  218. * weight?: int, // Default: 1
  219. * }>,
  220. * weight?: int, // Default: 1
  221. * metadata?: list<mixed>,
  222. * }>,
  223. * metadata?: list<mixed>,
  224. * }>,
  225. * },
  226. * router?: bool|array{ // Router configuration
  227. * enabled?: bool, // Default: false
  228. * resource: scalar|null,
  229. * type?: scalar|null,
  230. * cache_dir?: scalar|null, // Deprecated: Setting the "framework.router.cache_dir.cache_dir" configuration option is deprecated. It will be removed in version 8.0. // Default: "%kernel.build_dir%"
  231. * default_uri?: scalar|null, // The default URI used to generate URLs in a non-HTTP context. // Default: null
  232. * http_port?: scalar|null, // Default: 80
  233. * https_port?: scalar|null, // Default: 443
  234. * strict_requirements?: scalar|null, // set to true to throw an exception when a parameter does not match the requirements set to false to disable exceptions when a parameter does not match the requirements (and return null instead) set to null to disable parameter checks against requirements 'true' is the preferred configuration in development mode, while 'false' or 'null' might be preferred in production // Default: true
  235. * utf8?: bool, // Default: true
  236. * },
  237. * session?: bool|array{ // Session configuration
  238. * enabled?: bool, // Default: false
  239. * storage_factory_id?: scalar|null, // Default: "session.storage.factory.native"
  240. * handler_id?: scalar|null, // Defaults to using the native session handler, or to the native *file* session handler if "save_path" is not null.
  241. * name?: scalar|null,
  242. * cookie_lifetime?: scalar|null,
  243. * cookie_path?: scalar|null,
  244. * cookie_domain?: scalar|null,
  245. * cookie_secure?: true|false|"auto", // Default: "auto"
  246. * cookie_httponly?: bool, // Default: true
  247. * cookie_samesite?: null|"lax"|"strict"|"none", // Default: "lax"
  248. * use_cookies?: bool,
  249. * gc_divisor?: scalar|null,
  250. * gc_probability?: scalar|null,
  251. * gc_maxlifetime?: scalar|null,
  252. * save_path?: scalar|null, // Defaults to "%kernel.cache_dir%/sessions" if the "handler_id" option is not null.
  253. * metadata_update_threshold?: int, // Seconds to wait between 2 session metadata updates. // Default: 0
  254. * sid_length?: int, // Deprecated: Setting the "framework.session.sid_length.sid_length" configuration option is deprecated. It will be removed in version 8.0. No alternative is provided as PHP 8.4 has deprecated the related option.
  255. * sid_bits_per_character?: int, // Deprecated: Setting the "framework.session.sid_bits_per_character.sid_bits_per_character" configuration option is deprecated. It will be removed in version 8.0. No alternative is provided as PHP 8.4 has deprecated the related option.
  256. * },
  257. * request?: bool|array{ // Request configuration
  258. * enabled?: bool, // Default: false
  259. * formats?: array<string, string|list<scalar|null>>,
  260. * },
  261. * assets?: bool|array{ // Assets configuration
  262. * enabled?: bool, // Default: true
  263. * strict_mode?: bool, // Throw an exception if an entry is missing from the manifest.json. // Default: false
  264. * version_strategy?: scalar|null, // Default: null
  265. * version?: scalar|null, // Default: null
  266. * version_format?: scalar|null, // Default: "%%s?%%s"
  267. * json_manifest_path?: scalar|null, // Default: null
  268. * base_path?: scalar|null, // Default: ""
  269. * base_urls?: list<scalar|null>,
  270. * packages?: array<string, array{ // Default: []
  271. * strict_mode?: bool, // Throw an exception if an entry is missing from the manifest.json. // Default: false
  272. * version_strategy?: scalar|null, // Default: null
  273. * version?: scalar|null,
  274. * version_format?: scalar|null, // Default: null
  275. * json_manifest_path?: scalar|null, // Default: null
  276. * base_path?: scalar|null, // Default: ""
  277. * base_urls?: list<scalar|null>,
  278. * }>,
  279. * },
  280. * asset_mapper?: bool|array{ // Asset Mapper configuration
  281. * enabled?: bool, // Default: false
  282. * paths?: array<string, scalar|null>,
  283. * excluded_patterns?: list<scalar|null>,
  284. * exclude_dotfiles?: bool, // If true, any files starting with "." will be excluded from the asset mapper. // Default: true
  285. * server?: bool, // If true, a "dev server" will return the assets from the public directory (true in "debug" mode only by default). // Default: true
  286. * public_prefix?: scalar|null, // The public path where the assets will be written to (and served from when "server" is true). // Default: "/assets/"
  287. * missing_import_mode?: "strict"|"warn"|"ignore", // Behavior if an asset cannot be found when imported from JavaScript or CSS files - e.g. "import './non-existent.js'". "strict" means an exception is thrown, "warn" means a warning is logged, "ignore" means the import is left as-is. // Default: "warn"
  288. * extensions?: array<string, scalar|null>,
  289. * importmap_path?: scalar|null, // The path of the importmap.php file. // Default: "%kernel.project_dir%/importmap.php"
  290. * importmap_polyfill?: scalar|null, // The importmap name that will be used to load the polyfill. Set to false to disable. // Default: "es-module-shims"
  291. * importmap_script_attributes?: array<string, scalar|null>,
  292. * vendor_dir?: scalar|null, // The directory to store JavaScript vendors. // Default: "%kernel.project_dir%/assets/vendor"
  293. * precompress?: bool|array{ // Precompress assets with Brotli, Zstandard and gzip.
  294. * enabled?: bool, // Default: false
  295. * formats?: list<scalar|null>,
  296. * extensions?: list<scalar|null>,
  297. * },
  298. * },
  299. * translator?: bool|array{ // Translator configuration
  300. * enabled?: bool, // Default: true
  301. * fallbacks?: list<scalar|null>,
  302. * logging?: bool, // Default: false
  303. * formatter?: scalar|null, // Default: "translator.formatter.default"
  304. * cache_dir?: scalar|null, // Default: "%kernel.cache_dir%/translations"
  305. * default_path?: scalar|null, // The default path used to load translations. // Default: "%kernel.project_dir%/translations"
  306. * paths?: list<scalar|null>,
  307. * pseudo_localization?: bool|array{
  308. * enabled?: bool, // Default: false
  309. * accents?: bool, // Default: true
  310. * expansion_factor?: float, // Default: 1.0
  311. * brackets?: bool, // Default: true
  312. * parse_html?: bool, // Default: false
  313. * localizable_html_attributes?: list<scalar|null>,
  314. * },
  315. * providers?: array<string, array{ // Default: []
  316. * dsn?: scalar|null,
  317. * domains?: list<scalar|null>,
  318. * locales?: list<scalar|null>,
  319. * }>,
  320. * globals?: array<string, string|array{ // Default: []
  321. * value?: mixed,
  322. * message?: string,
  323. * parameters?: array<string, scalar|null>,
  324. * domain?: string,
  325. * }>,
  326. * },
  327. * validation?: bool|array{ // Validation configuration
  328. * enabled?: bool, // Default: true
  329. * cache?: scalar|null, // Deprecated: Setting the "framework.validation.cache.cache" configuration option is deprecated. It will be removed in version 8.0.
  330. * enable_attributes?: bool, // Default: true
  331. * static_method?: list<scalar|null>,
  332. * translation_domain?: scalar|null, // Default: "validators"
  333. * email_validation_mode?: "html5"|"html5-allow-no-tld"|"strict"|"loose", // Default: "html5"
  334. * mapping?: array{
  335. * paths?: list<scalar|null>,
  336. * },
  337. * not_compromised_password?: bool|array{
  338. * enabled?: bool, // When disabled, compromised passwords will be accepted as valid. // Default: true
  339. * endpoint?: scalar|null, // API endpoint for the NotCompromisedPassword Validator. // Default: null
  340. * },
  341. * disable_translation?: bool, // Default: false
  342. * auto_mapping?: array<string, array{ // Default: []
  343. * services?: list<scalar|null>,
  344. * }>,
  345. * },
  346. * annotations?: bool|array{
  347. * enabled?: bool, // Default: false
  348. * },
  349. * serializer?: bool|array{ // Serializer configuration
  350. * enabled?: bool, // Default: true
  351. * enable_attributes?: bool, // Default: true
  352. * name_converter?: scalar|null,
  353. * circular_reference_handler?: scalar|null,
  354. * max_depth_handler?: scalar|null,
  355. * mapping?: array{
  356. * paths?: list<scalar|null>,
  357. * },
  358. * default_context?: list<mixed>,
  359. * named_serializers?: array<string, array{ // Default: []
  360. * name_converter?: scalar|null,
  361. * default_context?: list<mixed>,
  362. * include_built_in_normalizers?: bool, // Whether to include the built-in normalizers // Default: true
  363. * include_built_in_encoders?: bool, // Whether to include the built-in encoders // Default: true
  364. * }>,
  365. * },
  366. * property_access?: bool|array{ // Property access configuration
  367. * enabled?: bool, // Default: true
  368. * magic_call?: bool, // Default: false
  369. * magic_get?: bool, // Default: true
  370. * magic_set?: bool, // Default: true
  371. * throw_exception_on_invalid_index?: bool, // Default: false
  372. * throw_exception_on_invalid_property_path?: bool, // Default: true
  373. * },
  374. * type_info?: bool|array{ // Type info configuration
  375. * enabled?: bool, // Default: true
  376. * aliases?: array<string, scalar|null>,
  377. * },
  378. * property_info?: bool|array{ // Property info configuration
  379. * enabled?: bool, // Default: true
  380. * with_constructor_extractor?: bool, // Registers the constructor extractor.
  381. * },
  382. * cache?: array{ // Cache configuration
  383. * prefix_seed?: scalar|null, // Used to namespace cache keys when using several apps with the same shared backend. // Default: "_%kernel.project_dir%.%kernel.container_class%"
  384. * app?: scalar|null, // App related cache pools configuration. // Default: "cache.adapter.filesystem"
  385. * system?: scalar|null, // System related cache pools configuration. // Default: "cache.adapter.system"
  386. * directory?: scalar|null, // Default: "%kernel.share_dir%/pools/app"
  387. * default_psr6_provider?: scalar|null,
  388. * default_redis_provider?: scalar|null, // Default: "redis://localhost"
  389. * default_valkey_provider?: scalar|null, // Default: "valkey://localhost"
  390. * default_memcached_provider?: scalar|null, // Default: "memcached://localhost"
  391. * default_doctrine_dbal_provider?: scalar|null, // Default: "database_connection"
  392. * default_pdo_provider?: scalar|null, // Default: null
  393. * pools?: array<string, array{ // Default: []
  394. * adapters?: list<scalar|null>,
  395. * tags?: scalar|null, // Default: null
  396. * public?: bool, // Default: false
  397. * default_lifetime?: scalar|null, // Default lifetime of the pool.
  398. * provider?: scalar|null, // Overwrite the setting from the default provider for this adapter.
  399. * early_expiration_message_bus?: scalar|null,
  400. * clearer?: scalar|null,
  401. * }>,
  402. * },
  403. * php_errors?: array{ // PHP errors handling configuration
  404. * log?: mixed, // Use the application logger instead of the PHP logger for logging PHP errors. // Default: true
  405. * throw?: bool, // Throw PHP errors as \ErrorException instances. // Default: true
  406. * },
  407. * exceptions?: array<string, array{ // Default: []
  408. * log_level?: scalar|null, // The level of log message. Null to let Symfony decide. // Default: null
  409. * status_code?: scalar|null, // The status code of the response. Null or 0 to let Symfony decide. // Default: null
  410. * log_channel?: scalar|null, // The channel of log message. Null to let Symfony decide. // Default: null
  411. * }>,
  412. * web_link?: bool|array{ // Web links configuration
  413. * enabled?: bool, // Default: true
  414. * },
  415. * lock?: bool|string|array{ // Lock configuration
  416. * enabled?: bool, // Default: false
  417. * resources?: array<string, string|list<scalar|null>>,
  418. * },
  419. * semaphore?: bool|string|array{ // Semaphore configuration
  420. * enabled?: bool, // Default: false
  421. * resources?: array<string, scalar|null>,
  422. * },
  423. * messenger?: bool|array{ // Messenger configuration
  424. * enabled?: bool, // Default: false
  425. * routing?: array<string, array{ // Default: []
  426. * senders?: list<scalar|null>,
  427. * }>,
  428. * serializer?: array{
  429. * default_serializer?: scalar|null, // Service id to use as the default serializer for the transports. // Default: "messenger.transport.native_php_serializer"
  430. * symfony_serializer?: array{
  431. * format?: scalar|null, // Serialization format for the messenger.transport.symfony_serializer service (which is not the serializer used by default). // Default: "json"
  432. * context?: array<string, mixed>,
  433. * },
  434. * },
  435. * transports?: array<string, string|array{ // Default: []
  436. * dsn?: scalar|null,
  437. * serializer?: scalar|null, // Service id of a custom serializer to use. // Default: null
  438. * options?: list<mixed>,
  439. * failure_transport?: scalar|null, // Transport name to send failed messages to (after all retries have failed). // Default: null
  440. * retry_strategy?: string|array{
  441. * service?: scalar|null, // Service id to override the retry strategy entirely. // Default: null
  442. * max_retries?: int, // Default: 3
  443. * delay?: int, // Time in ms to delay (or the initial value when multiplier is used). // Default: 1000
  444. * multiplier?: float, // If greater than 1, delay will grow exponentially for each retry: this delay = (delay * (multiple ^ retries)). // Default: 2
  445. * max_delay?: int, // Max time in ms that a retry should ever be delayed (0 = infinite). // Default: 0
  446. * jitter?: float, // Randomness to apply to the delay (between 0 and 1). // Default: 0.1
  447. * },
  448. * rate_limiter?: scalar|null, // Rate limiter name to use when processing messages. // Default: null
  449. * }>,
  450. * failure_transport?: scalar|null, // Transport name to send failed messages to (after all retries have failed). // Default: null
  451. * stop_worker_on_signals?: list<scalar|null>,
  452. * default_bus?: scalar|null, // Default: null
  453. * buses?: array<string, array{ // Default: {"messenger.bus.default":{"default_middleware":{"enabled":true,"allow_no_handlers":false,"allow_no_senders":true},"middleware":[]}}
  454. * default_middleware?: bool|string|array{
  455. * enabled?: bool, // Default: true
  456. * allow_no_handlers?: bool, // Default: false
  457. * allow_no_senders?: bool, // Default: true
  458. * },
  459. * middleware?: list<string|array{ // Default: []
  460. * id: scalar|null,
  461. * arguments?: list<mixed>,
  462. * }>,
  463. * }>,
  464. * },
  465. * scheduler?: bool|array{ // Scheduler configuration
  466. * enabled?: bool, // Default: false
  467. * },
  468. * disallow_search_engine_index?: bool, // Enabled by default when debug is enabled. // Default: true
  469. * http_client?: bool|array{ // HTTP Client configuration
  470. * enabled?: bool, // Default: true
  471. * max_host_connections?: int, // The maximum number of connections to a single host.
  472. * default_options?: array{
  473. * headers?: array<string, mixed>,
  474. * vars?: list<mixed>,
  475. * max_redirects?: int, // The maximum number of redirects to follow.
  476. * http_version?: scalar|null, // The default HTTP version, typically 1.1 or 2.0, leave to null for the best version.
  477. * resolve?: array<string, scalar|null>,
  478. * proxy?: scalar|null, // The URL of the proxy to pass requests through or null for automatic detection.
  479. * no_proxy?: scalar|null, // A comma separated list of hosts that do not require a proxy to be reached.
  480. * timeout?: float, // The idle timeout, defaults to the "default_socket_timeout" ini parameter.
  481. * max_duration?: float, // The maximum execution time for the request+response as a whole.
  482. * bindto?: scalar|null, // A network interface name, IP address, a host name or a UNIX socket to bind to.
  483. * verify_peer?: bool, // Indicates if the peer should be verified in a TLS context.
  484. * verify_host?: bool, // Indicates if the host should exist as a certificate common name.
  485. * cafile?: scalar|null, // A certificate authority file.
  486. * capath?: scalar|null, // A directory that contains multiple certificate authority files.
  487. * local_cert?: scalar|null, // A PEM formatted certificate file.
  488. * local_pk?: scalar|null, // A private key file.
  489. * passphrase?: scalar|null, // The passphrase used to encrypt the "local_pk" file.
  490. * ciphers?: scalar|null, // A list of TLS ciphers separated by colons, commas or spaces (e.g. "RC3-SHA:TLS13-AES-128-GCM-SHA256"...)
  491. * peer_fingerprint?: array{ // Associative array: hashing algorithm => hash(es).
  492. * sha1?: mixed,
  493. * pin-sha256?: mixed,
  494. * md5?: mixed,
  495. * },
  496. * crypto_method?: scalar|null, // The minimum version of TLS to accept; must be one of STREAM_CRYPTO_METHOD_TLSv*_CLIENT constants.
  497. * extra?: list<mixed>,
  498. * rate_limiter?: scalar|null, // Rate limiter name to use for throttling requests. // Default: null
  499. * caching?: bool|array{ // Caching configuration.
  500. * enabled?: bool, // Default: false
  501. * cache_pool?: string, // The taggable cache pool to use for storing the responses. // Default: "cache.http_client"
  502. * shared?: bool, // Indicates whether the cache is shared (public) or private. // Default: true
  503. * max_ttl?: int, // The maximum TTL (in seconds) allowed for cached responses. Null means no cap. // Default: null
  504. * },
  505. * retry_failed?: bool|array{
  506. * enabled?: bool, // Default: false
  507. * retry_strategy?: scalar|null, // service id to override the retry strategy. // Default: null
  508. * http_codes?: array<string, array{ // Default: []
  509. * code?: int,
  510. * methods?: list<string>,
  511. * }>,
  512. * max_retries?: int, // Default: 3
  513. * delay?: int, // Time in ms to delay (or the initial value when multiplier is used). // Default: 1000
  514. * multiplier?: float, // If greater than 1, delay will grow exponentially for each retry: delay * (multiple ^ retries). // Default: 2
  515. * max_delay?: int, // Max time in ms that a retry should ever be delayed (0 = infinite). // Default: 0
  516. * jitter?: float, // Randomness in percent (between 0 and 1) to apply to the delay. // Default: 0.1
  517. * },
  518. * },
  519. * mock_response_factory?: scalar|null, // The id of the service that should generate mock responses. It should be either an invokable or an iterable.
  520. * scoped_clients?: array<string, string|array{ // Default: []
  521. * scope?: scalar|null, // The regular expression that the request URL must match before adding the other options. When none is provided, the base URI is used instead.
  522. * base_uri?: scalar|null, // The URI to resolve relative URLs, following rules in RFC 3985, section 2.
  523. * auth_basic?: scalar|null, // An HTTP Basic authentication "username:password".
  524. * auth_bearer?: scalar|null, // A token enabling HTTP Bearer authorization.
  525. * auth_ntlm?: scalar|null, // A "username:password" pair to use Microsoft NTLM authentication (requires the cURL extension).
  526. * query?: array<string, scalar|null>,
  527. * headers?: array<string, mixed>,
  528. * max_redirects?: int, // The maximum number of redirects to follow.
  529. * http_version?: scalar|null, // The default HTTP version, typically 1.1 or 2.0, leave to null for the best version.
  530. * resolve?: array<string, scalar|null>,
  531. * proxy?: scalar|null, // The URL of the proxy to pass requests through or null for automatic detection.
  532. * no_proxy?: scalar|null, // A comma separated list of hosts that do not require a proxy to be reached.
  533. * timeout?: float, // The idle timeout, defaults to the "default_socket_timeout" ini parameter.
  534. * max_duration?: float, // The maximum execution time for the request+response as a whole.
  535. * bindto?: scalar|null, // A network interface name, IP address, a host name or a UNIX socket to bind to.
  536. * verify_peer?: bool, // Indicates if the peer should be verified in a TLS context.
  537. * verify_host?: bool, // Indicates if the host should exist as a certificate common name.
  538. * cafile?: scalar|null, // A certificate authority file.
  539. * capath?: scalar|null, // A directory that contains multiple certificate authority files.
  540. * local_cert?: scalar|null, // A PEM formatted certificate file.
  541. * local_pk?: scalar|null, // A private key file.
  542. * passphrase?: scalar|null, // The passphrase used to encrypt the "local_pk" file.
  543. * ciphers?: scalar|null, // A list of TLS ciphers separated by colons, commas or spaces (e.g. "RC3-SHA:TLS13-AES-128-GCM-SHA256"...).
  544. * peer_fingerprint?: array{ // Associative array: hashing algorithm => hash(es).
  545. * sha1?: mixed,
  546. * pin-sha256?: mixed,
  547. * md5?: mixed,
  548. * },
  549. * crypto_method?: scalar|null, // The minimum version of TLS to accept; must be one of STREAM_CRYPTO_METHOD_TLSv*_CLIENT constants.
  550. * extra?: list<mixed>,
  551. * rate_limiter?: scalar|null, // Rate limiter name to use for throttling requests. // Default: null
  552. * caching?: bool|array{ // Caching configuration.
  553. * enabled?: bool, // Default: false
  554. * cache_pool?: string, // The taggable cache pool to use for storing the responses. // Default: "cache.http_client"
  555. * shared?: bool, // Indicates whether the cache is shared (public) or private. // Default: true
  556. * max_ttl?: int, // The maximum TTL (in seconds) allowed for cached responses. Null means no cap. // Default: null
  557. * },
  558. * retry_failed?: bool|array{
  559. * enabled?: bool, // Default: false
  560. * retry_strategy?: scalar|null, // service id to override the retry strategy. // Default: null
  561. * http_codes?: array<string, array{ // Default: []
  562. * code?: int,
  563. * methods?: list<string>,
  564. * }>,
  565. * max_retries?: int, // Default: 3
  566. * delay?: int, // Time in ms to delay (or the initial value when multiplier is used). // Default: 1000
  567. * multiplier?: float, // If greater than 1, delay will grow exponentially for each retry: delay * (multiple ^ retries). // Default: 2
  568. * max_delay?: int, // Max time in ms that a retry should ever be delayed (0 = infinite). // Default: 0
  569. * jitter?: float, // Randomness in percent (between 0 and 1) to apply to the delay. // Default: 0.1
  570. * },
  571. * }>,
  572. * },
  573. * mailer?: bool|array{ // Mailer configuration
  574. * enabled?: bool, // Default: true
  575. * message_bus?: scalar|null, // The message bus to use. Defaults to the default bus if the Messenger component is installed. // Default: null
  576. * dsn?: scalar|null, // Default: null
  577. * transports?: array<string, scalar|null>,
  578. * envelope?: array{ // Mailer Envelope configuration
  579. * sender?: scalar|null,
  580. * recipients?: list<scalar|null>,
  581. * allowed_recipients?: list<scalar|null>,
  582. * },
  583. * headers?: array<string, string|array{ // Default: []
  584. * value?: mixed,
  585. * }>,
  586. * dkim_signer?: bool|array{ // DKIM signer configuration
  587. * enabled?: bool, // Default: false
  588. * key?: scalar|null, // Key content, or path to key (in PEM format with the `file://` prefix) // Default: ""
  589. * domain?: scalar|null, // Default: ""
  590. * select?: scalar|null, // Default: ""
  591. * passphrase?: scalar|null, // The private key passphrase // Default: ""
  592. * options?: array<string, mixed>,
  593. * },
  594. * smime_signer?: bool|array{ // S/MIME signer configuration
  595. * enabled?: bool, // Default: false
  596. * key?: scalar|null, // Path to key (in PEM format) // Default: ""
  597. * certificate?: scalar|null, // Path to certificate (in PEM format without the `file://` prefix) // Default: ""
  598. * passphrase?: scalar|null, // The private key passphrase // Default: null
  599. * extra_certificates?: scalar|null, // Default: null
  600. * sign_options?: int, // Default: null
  601. * },
  602. * smime_encrypter?: bool|array{ // S/MIME encrypter configuration
  603. * enabled?: bool, // Default: false
  604. * repository?: scalar|null, // S/MIME certificate repository service. This service shall implement the `Symfony\Component\Mailer\EventListener\SmimeCertificateRepositoryInterface`. // Default: ""
  605. * cipher?: int, // A set of algorithms used to encrypt the message // Default: null
  606. * },
  607. * },
  608. * secrets?: bool|array{
  609. * enabled?: bool, // Default: true
  610. * vault_directory?: scalar|null, // Default: "%kernel.project_dir%/config/secrets/%kernel.runtime_environment%"
  611. * local_dotenv_file?: scalar|null, // Default: "%kernel.project_dir%/.env.%kernel.runtime_environment%.local"
  612. * decryption_env_var?: scalar|null, // Default: "base64:default::SYMFONY_DECRYPTION_SECRET"
  613. * },
  614. * notifier?: bool|array{ // Notifier configuration
  615. * enabled?: bool, // Default: false
  616. * message_bus?: scalar|null, // The message bus to use. Defaults to the default bus if the Messenger component is installed. // Default: null
  617. * chatter_transports?: array<string, scalar|null>,
  618. * texter_transports?: array<string, scalar|null>,
  619. * notification_on_failed_messages?: bool, // Default: false
  620. * channel_policy?: array<string, string|list<scalar|null>>,
  621. * admin_recipients?: list<array{ // Default: []
  622. * email?: scalar|null,
  623. * phone?: scalar|null, // Default: ""
  624. * }>,
  625. * },
  626. * rate_limiter?: bool|array{ // Rate limiter configuration
  627. * enabled?: bool, // Default: false
  628. * limiters?: array<string, array{ // Default: []
  629. * lock_factory?: scalar|null, // The service ID of the lock factory used by this limiter (or null to disable locking). // Default: "auto"
  630. * cache_pool?: scalar|null, // The cache pool to use for storing the current limiter state. // Default: "cache.rate_limiter"
  631. * storage_service?: scalar|null, // The service ID of a custom storage implementation, this precedes any configured "cache_pool". // Default: null
  632. * policy: "fixed_window"|"token_bucket"|"sliding_window"|"compound"|"no_limit", // The algorithm to be used by this limiter.
  633. * limiters?: list<scalar|null>,
  634. * limit?: int, // The maximum allowed hits in a fixed interval or burst.
  635. * interval?: scalar|null, // Configures the fixed interval if "policy" is set to "fixed_window" or "sliding_window". The value must be a number followed by "second", "minute", "hour", "day", "week" or "month" (or their plural equivalent).
  636. * rate?: array{ // Configures the fill rate if "policy" is set to "token_bucket".
  637. * interval?: scalar|null, // Configures the rate interval. The value must be a number followed by "second", "minute", "hour", "day", "week" or "month" (or their plural equivalent).
  638. * amount?: int, // Amount of tokens to add each interval. // Default: 1
  639. * },
  640. * }>,
  641. * },
  642. * uid?: bool|array{ // Uid configuration
  643. * enabled?: bool, // Default: false
  644. * default_uuid_version?: 7|6|4|1, // Default: 7
  645. * name_based_uuid_version?: 5|3, // Default: 5
  646. * name_based_uuid_namespace?: scalar|null,
  647. * time_based_uuid_version?: 7|6|1, // Default: 7
  648. * time_based_uuid_node?: scalar|null,
  649. * },
  650. * html_sanitizer?: bool|array{ // HtmlSanitizer configuration
  651. * enabled?: bool, // Default: true
  652. * sanitizers?: array<string, array{ // Default: []
  653. * allow_safe_elements?: bool, // Allows "safe" elements and attributes. // Default: false
  654. * allow_static_elements?: bool, // Allows all static elements and attributes from the W3C Sanitizer API standard. // Default: false
  655. * allow_elements?: array<string, mixed>,
  656. * block_elements?: list<string>,
  657. * drop_elements?: list<string>,
  658. * allow_attributes?: array<string, mixed>,
  659. * drop_attributes?: array<string, mixed>,
  660. * force_attributes?: array<string, array<string, string>>,
  661. * force_https_urls?: bool, // Transforms URLs using the HTTP scheme to use the HTTPS scheme instead. // Default: false
  662. * allowed_link_schemes?: list<string>,
  663. * allowed_link_hosts?: list<string>|null,
  664. * allow_relative_links?: bool, // Allows relative URLs to be used in links href attributes. // Default: false
  665. * allowed_media_schemes?: list<string>,
  666. * allowed_media_hosts?: list<string>|null,
  667. * allow_relative_medias?: bool, // Allows relative URLs to be used in media source attributes (img, audio, video, ...). // Default: false
  668. * with_attribute_sanitizers?: list<string>,
  669. * without_attribute_sanitizers?: list<string>,
  670. * max_input_length?: int, // The maximum length allowed for the sanitized input. // Default: 0
  671. * }>,
  672. * },
  673. * webhook?: bool|array{ // Webhook configuration
  674. * enabled?: bool, // Default: false
  675. * message_bus?: scalar|null, // The message bus to use. // Default: "messenger.default_bus"
  676. * routing?: array<string, array{ // Default: []
  677. * service: scalar|null,
  678. * secret?: scalar|null, // Default: ""
  679. * }>,
  680. * },
  681. * remote-event?: bool|array{ // RemoteEvent configuration
  682. * enabled?: bool, // Default: false
  683. * },
  684. * json_streamer?: bool|array{ // JSON streamer configuration
  685. * enabled?: bool, // Default: false
  686. * },
  687. * }
  688. * @psalm-type DoctrineConfig = array{
  689. * dbal?: array{
  690. * default_connection?: scalar|null,
  691. * types?: array<string, string|array{ // Default: []
  692. * class: scalar|null,
  693. * commented?: bool, // Deprecated: The doctrine-bundle type commenting features were removed; the corresponding config parameter was deprecated in 2.0 and will be dropped in 3.0.
  694. * }>,
  695. * driver_schemes?: array<string, scalar|null>,
  696. * connections?: array<string, array{ // Default: []
  697. * url?: scalar|null, // A URL with connection information; any parameter value parsed from this string will override explicitly set parameters
  698. * dbname?: scalar|null,
  699. * host?: scalar|null, // Defaults to "localhost" at runtime.
  700. * port?: scalar|null, // Defaults to null at runtime.
  701. * user?: scalar|null, // Defaults to "root" at runtime.
  702. * password?: scalar|null, // Defaults to null at runtime.
  703. * override_url?: bool, // Deprecated: The "doctrine.dbal.override_url" configuration key is deprecated.
  704. * dbname_suffix?: scalar|null, // Adds the given suffix to the configured database name, this option has no effects for the SQLite platform
  705. * application_name?: scalar|null,
  706. * charset?: scalar|null,
  707. * path?: scalar|null,
  708. * memory?: bool,
  709. * unix_socket?: scalar|null, // The unix socket to use for MySQL
  710. * persistent?: bool, // True to use as persistent connection for the ibm_db2 driver
  711. * protocol?: scalar|null, // The protocol to use for the ibm_db2 driver (default to TCPIP if omitted)
  712. * service?: bool, // True to use SERVICE_NAME as connection parameter instead of SID for Oracle
  713. * servicename?: scalar|null, // Overrules dbname parameter if given and used as SERVICE_NAME or SID connection parameter for Oracle depending on the service parameter.
  714. * sessionMode?: scalar|null, // The session mode to use for the oci8 driver
  715. * server?: scalar|null, // The name of a running database server to connect to for SQL Anywhere.
  716. * default_dbname?: scalar|null, // Override the default database (postgres) to connect to for PostgreSQL connexion.
  717. * sslmode?: scalar|null, // Determines whether or with what priority a SSL TCP/IP connection will be negotiated with the server for PostgreSQL.
  718. * sslrootcert?: scalar|null, // The name of a file containing SSL certificate authority (CA) certificate(s). If the file exists, the server's certificate will be verified to be signed by one of these authorities.
  719. * sslcert?: scalar|null, // The path to the SSL client certificate file for PostgreSQL.
  720. * sslkey?: scalar|null, // The path to the SSL client key file for PostgreSQL.
  721. * sslcrl?: scalar|null, // The file name of the SSL certificate revocation list for PostgreSQL.
  722. * pooled?: bool, // True to use a pooled server with the oci8/pdo_oracle driver
  723. * MultipleActiveResultSets?: bool, // Configuring MultipleActiveResultSets for the pdo_sqlsrv driver
  724. * use_savepoints?: bool, // Use savepoints for nested transactions
  725. * instancename?: scalar|null, // Optional parameter, complete whether to add the INSTANCE_NAME parameter in the connection. It is generally used to connect to an Oracle RAC server to select the name of a particular instance.
  726. * connectstring?: scalar|null, // Complete Easy Connect connection descriptor, see https://docs.oracle.com/database/121/NETAG/naming.htm.When using this option, you will still need to provide the user and password parameters, but the other parameters will no longer be used. Note that when using this parameter, the getHost and getPort methods from Doctrine\DBAL\Connection will no longer function as expected.
  727. * driver?: scalar|null, // Default: "pdo_mysql"
  728. * platform_service?: scalar|null, // Deprecated: The "platform_service" configuration key is deprecated since doctrine-bundle 2.9. DBAL 4 will not support setting a custom platform via connection params anymore.
  729. * auto_commit?: bool,
  730. * schema_filter?: scalar|null,
  731. * logging?: bool, // Default: true
  732. * profiling?: bool, // Default: true
  733. * profiling_collect_backtrace?: bool, // Enables collecting backtraces when profiling is enabled // Default: false
  734. * profiling_collect_schema_errors?: bool, // Enables collecting schema errors when profiling is enabled // Default: true
  735. * disable_type_comments?: bool,
  736. * server_version?: scalar|null,
  737. * idle_connection_ttl?: int, // Default: 600
  738. * driver_class?: scalar|null,
  739. * wrapper_class?: scalar|null,
  740. * keep_slave?: bool, // Deprecated: The "keep_slave" configuration key is deprecated since doctrine-bundle 2.2. Use the "keep_replica" configuration key instead.
  741. * keep_replica?: bool,
  742. * options?: array<string, mixed>,
  743. * mapping_types?: array<string, scalar|null>,
  744. * default_table_options?: array<string, scalar|null>,
  745. * schema_manager_factory?: scalar|null, // Default: "doctrine.dbal.default_schema_manager_factory"
  746. * result_cache?: scalar|null,
  747. * slaves?: array<string, array{ // Default: []
  748. * url?: scalar|null, // A URL with connection information; any parameter value parsed from this string will override explicitly set parameters
  749. * dbname?: scalar|null,
  750. * host?: scalar|null, // Defaults to "localhost" at runtime.
  751. * port?: scalar|null, // Defaults to null at runtime.
  752. * user?: scalar|null, // Defaults to "root" at runtime.
  753. * password?: scalar|null, // Defaults to null at runtime.
  754. * override_url?: bool, // Deprecated: The "doctrine.dbal.override_url" configuration key is deprecated.
  755. * dbname_suffix?: scalar|null, // Adds the given suffix to the configured database name, this option has no effects for the SQLite platform
  756. * application_name?: scalar|null,
  757. * charset?: scalar|null,
  758. * path?: scalar|null,
  759. * memory?: bool,
  760. * unix_socket?: scalar|null, // The unix socket to use for MySQL
  761. * persistent?: bool, // True to use as persistent connection for the ibm_db2 driver
  762. * protocol?: scalar|null, // The protocol to use for the ibm_db2 driver (default to TCPIP if omitted)
  763. * service?: bool, // True to use SERVICE_NAME as connection parameter instead of SID for Oracle
  764. * servicename?: scalar|null, // Overrules dbname parameter if given and used as SERVICE_NAME or SID connection parameter for Oracle depending on the service parameter.
  765. * sessionMode?: scalar|null, // The session mode to use for the oci8 driver
  766. * server?: scalar|null, // The name of a running database server to connect to for SQL Anywhere.
  767. * default_dbname?: scalar|null, // Override the default database (postgres) to connect to for PostgreSQL connexion.
  768. * sslmode?: scalar|null, // Determines whether or with what priority a SSL TCP/IP connection will be negotiated with the server for PostgreSQL.
  769. * sslrootcert?: scalar|null, // The name of a file containing SSL certificate authority (CA) certificate(s). If the file exists, the server's certificate will be verified to be signed by one of these authorities.
  770. * sslcert?: scalar|null, // The path to the SSL client certificate file for PostgreSQL.
  771. * sslkey?: scalar|null, // The path to the SSL client key file for PostgreSQL.
  772. * sslcrl?: scalar|null, // The file name of the SSL certificate revocation list for PostgreSQL.
  773. * pooled?: bool, // True to use a pooled server with the oci8/pdo_oracle driver
  774. * MultipleActiveResultSets?: bool, // Configuring MultipleActiveResultSets for the pdo_sqlsrv driver
  775. * use_savepoints?: bool, // Use savepoints for nested transactions
  776. * instancename?: scalar|null, // Optional parameter, complete whether to add the INSTANCE_NAME parameter in the connection. It is generally used to connect to an Oracle RAC server to select the name of a particular instance.
  777. * connectstring?: scalar|null, // Complete Easy Connect connection descriptor, see https://docs.oracle.com/database/121/NETAG/naming.htm.When using this option, you will still need to provide the user and password parameters, but the other parameters will no longer be used. Note that when using this parameter, the getHost and getPort methods from Doctrine\DBAL\Connection will no longer function as expected.
  778. * }>,
  779. * replicas?: array<string, array{ // Default: []
  780. * url?: scalar|null, // A URL with connection information; any parameter value parsed from this string will override explicitly set parameters
  781. * dbname?: scalar|null,
  782. * host?: scalar|null, // Defaults to "localhost" at runtime.
  783. * port?: scalar|null, // Defaults to null at runtime.
  784. * user?: scalar|null, // Defaults to "root" at runtime.
  785. * password?: scalar|null, // Defaults to null at runtime.
  786. * override_url?: bool, // Deprecated: The "doctrine.dbal.override_url" configuration key is deprecated.
  787. * dbname_suffix?: scalar|null, // Adds the given suffix to the configured database name, this option has no effects for the SQLite platform
  788. * application_name?: scalar|null,
  789. * charset?: scalar|null,
  790. * path?: scalar|null,
  791. * memory?: bool,
  792. * unix_socket?: scalar|null, // The unix socket to use for MySQL
  793. * persistent?: bool, // True to use as persistent connection for the ibm_db2 driver
  794. * protocol?: scalar|null, // The protocol to use for the ibm_db2 driver (default to TCPIP if omitted)
  795. * service?: bool, // True to use SERVICE_NAME as connection parameter instead of SID for Oracle
  796. * servicename?: scalar|null, // Overrules dbname parameter if given and used as SERVICE_NAME or SID connection parameter for Oracle depending on the service parameter.
  797. * sessionMode?: scalar|null, // The session mode to use for the oci8 driver
  798. * server?: scalar|null, // The name of a running database server to connect to for SQL Anywhere.
  799. * default_dbname?: scalar|null, // Override the default database (postgres) to connect to for PostgreSQL connexion.
  800. * sslmode?: scalar|null, // Determines whether or with what priority a SSL TCP/IP connection will be negotiated with the server for PostgreSQL.
  801. * sslrootcert?: scalar|null, // The name of a file containing SSL certificate authority (CA) certificate(s). If the file exists, the server's certificate will be verified to be signed by one of these authorities.
  802. * sslcert?: scalar|null, // The path to the SSL client certificate file for PostgreSQL.
  803. * sslkey?: scalar|null, // The path to the SSL client key file for PostgreSQL.
  804. * sslcrl?: scalar|null, // The file name of the SSL certificate revocation list for PostgreSQL.
  805. * pooled?: bool, // True to use a pooled server with the oci8/pdo_oracle driver
  806. * MultipleActiveResultSets?: bool, // Configuring MultipleActiveResultSets for the pdo_sqlsrv driver
  807. * use_savepoints?: bool, // Use savepoints for nested transactions
  808. * instancename?: scalar|null, // Optional parameter, complete whether to add the INSTANCE_NAME parameter in the connection. It is generally used to connect to an Oracle RAC server to select the name of a particular instance.
  809. * connectstring?: scalar|null, // Complete Easy Connect connection descriptor, see https://docs.oracle.com/database/121/NETAG/naming.htm.When using this option, you will still need to provide the user and password parameters, but the other parameters will no longer be used. Note that when using this parameter, the getHost and getPort methods from Doctrine\DBAL\Connection will no longer function as expected.
  810. * }>,
  811. * }>,
  812. * },
  813. * orm?: array{
  814. * default_entity_manager?: scalar|null,
  815. * auto_generate_proxy_classes?: scalar|null, // Auto generate mode possible values are: "NEVER", "ALWAYS", "FILE_NOT_EXISTS", "EVAL", "FILE_NOT_EXISTS_OR_CHANGED", this option is ignored when the "enable_native_lazy_objects" option is true // Default: false
  816. * enable_lazy_ghost_objects?: bool, // Enables the new implementation of proxies based on lazy ghosts instead of using the legacy implementation // Default: true
  817. * enable_native_lazy_objects?: bool, // Enables the new native implementation of PHP lazy objects instead of generated proxies // Default: false
  818. * proxy_dir?: scalar|null, // Configures the path where generated proxy classes are saved when using non-native lazy objects, this option is ignored when the "enable_native_lazy_objects" option is true // Default: "%kernel.build_dir%/doctrine/orm/Proxies"
  819. * proxy_namespace?: scalar|null, // Defines the root namespace for generated proxy classes when using non-native lazy objects, this option is ignored when the "enable_native_lazy_objects" option is true // Default: "Proxies"
  820. * controller_resolver?: bool|array{
  821. * enabled?: bool, // Default: true
  822. * auto_mapping?: bool|null, // Set to false to disable using route placeholders as lookup criteria when the primary key doesn't match the argument name // Default: null
  823. * evict_cache?: bool, // Set to true to fetch the entity from the database instead of using the cache, if any // Default: false
  824. * },
  825. * entity_managers?: array<string, array{ // Default: []
  826. * query_cache_driver?: string|array{
  827. * type?: scalar|null, // Default: null
  828. * id?: scalar|null,
  829. * pool?: scalar|null,
  830. * },
  831. * metadata_cache_driver?: string|array{
  832. * type?: scalar|null, // Default: null
  833. * id?: scalar|null,
  834. * pool?: scalar|null,
  835. * },
  836. * result_cache_driver?: string|array{
  837. * type?: scalar|null, // Default: null
  838. * id?: scalar|null,
  839. * pool?: scalar|null,
  840. * },
  841. * entity_listeners?: array{
  842. * entities?: array<string, array{ // Default: []
  843. * listeners?: array<string, array{ // Default: []
  844. * events?: list<array{ // Default: []
  845. * type?: scalar|null,
  846. * method?: scalar|null, // Default: null
  847. * }>,
  848. * }>,
  849. * }>,
  850. * },
  851. * connection?: scalar|null,
  852. * class_metadata_factory_name?: scalar|null, // Default: "Doctrine\\ORM\\Mapping\\ClassMetadataFactory"
  853. * default_repository_class?: scalar|null, // Default: "Doctrine\\ORM\\EntityRepository"
  854. * auto_mapping?: scalar|null, // Default: false
  855. * naming_strategy?: scalar|null, // Default: "doctrine.orm.naming_strategy.default"
  856. * quote_strategy?: scalar|null, // Default: "doctrine.orm.quote_strategy.default"
  857. * typed_field_mapper?: scalar|null, // Default: "doctrine.orm.typed_field_mapper.default"
  858. * entity_listener_resolver?: scalar|null, // Default: null
  859. * fetch_mode_subselect_batch_size?: scalar|null,
  860. * repository_factory?: scalar|null, // Default: "doctrine.orm.container_repository_factory"
  861. * schema_ignore_classes?: list<scalar|null>,
  862. * report_fields_where_declared?: bool, // Set to "true" to opt-in to the new mapping driver mode that was added in Doctrine ORM 2.16 and will be mandatory in ORM 3.0. See https://github.com/doctrine/orm/pull/10455. // Default: true
  863. * validate_xml_mapping?: bool, // Set to "true" to opt-in to the new mapping driver mode that was added in Doctrine ORM 2.14. See https://github.com/doctrine/orm/pull/6728. // Default: false
  864. * second_level_cache?: array{
  865. * region_cache_driver?: string|array{
  866. * type?: scalar|null, // Default: null
  867. * id?: scalar|null,
  868. * pool?: scalar|null,
  869. * },
  870. * region_lock_lifetime?: scalar|null, // Default: 60
  871. * log_enabled?: bool, // Default: true
  872. * region_lifetime?: scalar|null, // Default: 3600
  873. * enabled?: bool, // Default: true
  874. * factory?: scalar|null,
  875. * regions?: array<string, array{ // Default: []
  876. * cache_driver?: string|array{
  877. * type?: scalar|null, // Default: null
  878. * id?: scalar|null,
  879. * pool?: scalar|null,
  880. * },
  881. * lock_path?: scalar|null, // Default: "%kernel.cache_dir%/doctrine/orm/slc/filelock"
  882. * lock_lifetime?: scalar|null, // Default: 60
  883. * type?: scalar|null, // Default: "default"
  884. * lifetime?: scalar|null, // Default: 0
  885. * service?: scalar|null,
  886. * name?: scalar|null,
  887. * }>,
  888. * loggers?: array<string, array{ // Default: []
  889. * name?: scalar|null,
  890. * service?: scalar|null,
  891. * }>,
  892. * },
  893. * hydrators?: array<string, scalar|null>,
  894. * mappings?: array<string, bool|string|array{ // Default: []
  895. * mapping?: scalar|null, // Default: true
  896. * type?: scalar|null,
  897. * dir?: scalar|null,
  898. * alias?: scalar|null,
  899. * prefix?: scalar|null,
  900. * is_bundle?: bool,
  901. * }>,
  902. * dql?: array{
  903. * string_functions?: array<string, scalar|null>,
  904. * numeric_functions?: array<string, scalar|null>,
  905. * datetime_functions?: array<string, scalar|null>,
  906. * },
  907. * filters?: array<string, string|array{ // Default: []
  908. * class: scalar|null,
  909. * enabled?: bool, // Default: false
  910. * parameters?: array<string, mixed>,
  911. * }>,
  912. * identity_generation_preferences?: array<string, scalar|null>,
  913. * }>,
  914. * resolve_target_entities?: array<string, scalar|null>,
  915. * },
  916. * }
  917. * @psalm-type DoctrineMigrationsConfig = array{
  918. * enable_service_migrations?: bool, // Whether to enable fetching migrations from the service container. // Default: false
  919. * migrations_paths?: array<string, scalar|null>,
  920. * services?: array<string, scalar|null>,
  921. * factories?: array<string, scalar|null>,
  922. * storage?: array{ // Storage to use for migration status metadata.
  923. * table_storage?: array{ // The default metadata storage, implemented as a table in the database.
  924. * table_name?: scalar|null, // Default: null
  925. * version_column_name?: scalar|null, // Default: null
  926. * version_column_length?: scalar|null, // Default: null
  927. * executed_at_column_name?: scalar|null, // Default: null
  928. * execution_time_column_name?: scalar|null, // Default: null
  929. * },
  930. * },
  931. * migrations?: list<scalar|null>,
  932. * connection?: scalar|null, // Connection name to use for the migrations database. // Default: null
  933. * em?: scalar|null, // Entity manager name to use for the migrations database (available when doctrine/orm is installed). // Default: null
  934. * all_or_nothing?: scalar|null, // Run all migrations in a transaction. // Default: false
  935. * check_database_platform?: scalar|null, // Adds an extra check in the generated migrations to allow execution only on the same platform as they were initially generated on. // Default: true
  936. * custom_template?: scalar|null, // Custom template path for generated migration classes. // Default: null
  937. * organize_migrations?: scalar|null, // Organize migrations mode. Possible values are: "BY_YEAR", "BY_YEAR_AND_MONTH", false // Default: false
  938. * enable_profiler?: bool, // Whether or not to enable the profiler collector to calculate and visualize migration status. This adds some queries overhead. // Default: false
  939. * transactional?: bool, // Whether or not to wrap migrations in a single transaction. // Default: true
  940. * }
  941. * @psalm-type SecurityConfig = array{
  942. * access_denied_url?: scalar|null, // Default: null
  943. * session_fixation_strategy?: "none"|"migrate"|"invalidate", // Default: "migrate"
  944. * hide_user_not_found?: bool, // Deprecated: The "hide_user_not_found" option is deprecated and will be removed in 8.0. Use the "expose_security_errors" option instead.
  945. * expose_security_errors?: \Symfony\Component\Security\Http\Authentication\ExposeSecurityLevel::None|\Symfony\Component\Security\Http\Authentication\ExposeSecurityLevel::AccountStatus|\Symfony\Component\Security\Http\Authentication\ExposeSecurityLevel::All, // Default: "none"
  946. * erase_credentials?: bool, // Default: true
  947. * access_decision_manager?: array{
  948. * strategy?: "affirmative"|"consensus"|"unanimous"|"priority",
  949. * service?: scalar|null,
  950. * strategy_service?: scalar|null,
  951. * allow_if_all_abstain?: bool, // Default: false
  952. * allow_if_equal_granted_denied?: bool, // Default: true
  953. * },
  954. * password_hashers?: array<string, string|array{ // Default: []
  955. * algorithm?: scalar|null,
  956. * migrate_from?: list<scalar|null>,
  957. * hash_algorithm?: scalar|null, // Name of hashing algorithm for PBKDF2 (i.e. sha256, sha512, etc..) See hash_algos() for a list of supported algorithms. // Default: "sha512"
  958. * key_length?: scalar|null, // Default: 40
  959. * ignore_case?: bool, // Default: false
  960. * encode_as_base64?: bool, // Default: true
  961. * iterations?: scalar|null, // Default: 5000
  962. * cost?: int, // Default: null
  963. * memory_cost?: scalar|null, // Default: null
  964. * time_cost?: scalar|null, // Default: null
  965. * id?: scalar|null,
  966. * }>,
  967. * providers?: array<string, array{ // Default: []
  968. * id?: scalar|null,
  969. * chain?: array{
  970. * providers?: list<scalar|null>,
  971. * },
  972. * entity?: array{
  973. * class: scalar|null, // The full entity class name of your user class.
  974. * property?: scalar|null, // Default: null
  975. * manager_name?: scalar|null, // Default: null
  976. * },
  977. * memory?: array{
  978. * users?: array<string, array{ // Default: []
  979. * password?: scalar|null, // Default: null
  980. * roles?: list<scalar|null>,
  981. * }>,
  982. * },
  983. * ldap?: array{
  984. * service: scalar|null,
  985. * base_dn: scalar|null,
  986. * search_dn?: scalar|null, // Default: null
  987. * search_password?: scalar|null, // Default: null
  988. * extra_fields?: list<scalar|null>,
  989. * default_roles?: list<scalar|null>,
  990. * role_fetcher?: scalar|null, // Default: null
  991. * uid_key?: scalar|null, // Default: "sAMAccountName"
  992. * filter?: scalar|null, // Default: "({uid_key}={user_identifier})"
  993. * password_attribute?: scalar|null, // Default: null
  994. * },
  995. * }>,
  996. * firewalls: array<string, array{ // Default: []
  997. * pattern?: scalar|null,
  998. * host?: scalar|null,
  999. * methods?: list<scalar|null>,
  1000. * security?: bool, // Default: true
  1001. * user_checker?: scalar|null, // The UserChecker to use when authenticating users in this firewall. // Default: "security.user_checker"
  1002. * request_matcher?: scalar|null,
  1003. * access_denied_url?: scalar|null,
  1004. * access_denied_handler?: scalar|null,
  1005. * entry_point?: scalar|null, // An enabled authenticator name or a service id that implements "Symfony\Component\Security\Http\EntryPoint\AuthenticationEntryPointInterface".
  1006. * provider?: scalar|null,
  1007. * stateless?: bool, // Default: false
  1008. * lazy?: bool, // Default: false
  1009. * context?: scalar|null,
  1010. * logout?: array{
  1011. * enable_csrf?: bool|null, // Default: null
  1012. * csrf_token_id?: scalar|null, // Default: "logout"
  1013. * csrf_parameter?: scalar|null, // Default: "_csrf_token"
  1014. * csrf_token_manager?: scalar|null,
  1015. * path?: scalar|null, // Default: "/logout"
  1016. * target?: scalar|null, // Default: "/"
  1017. * invalidate_session?: bool, // Default: true
  1018. * clear_site_data?: list<"*"|"cache"|"cookies"|"storage"|"executionContexts">,
  1019. * delete_cookies?: array<string, array{ // Default: []
  1020. * path?: scalar|null, // Default: null
  1021. * domain?: scalar|null, // Default: null
  1022. * secure?: scalar|null, // Default: false
  1023. * samesite?: scalar|null, // Default: null
  1024. * partitioned?: scalar|null, // Default: false
  1025. * }>,
  1026. * },
  1027. * switch_user?: array{
  1028. * provider?: scalar|null,
  1029. * parameter?: scalar|null, // Default: "_switch_user"
  1030. * role?: scalar|null, // Default: "ROLE_ALLOWED_TO_SWITCH"
  1031. * target_route?: scalar|null, // Default: null
  1032. * },
  1033. * required_badges?: list<scalar|null>,
  1034. * custom_authenticators?: list<scalar|null>,
  1035. * login_throttling?: array{
  1036. * limiter?: scalar|null, // A service id implementing "Symfony\Component\HttpFoundation\RateLimiter\RequestRateLimiterInterface".
  1037. * max_attempts?: int, // Default: 5
  1038. * interval?: scalar|null, // Default: "1 minute"
  1039. * lock_factory?: scalar|null, // The service ID of the lock factory used by the login rate limiter (or null to disable locking). // Default: null
  1040. * cache_pool?: string, // The cache pool to use for storing the limiter state // Default: "cache.rate_limiter"
  1041. * storage_service?: string, // The service ID of a custom storage implementation, this precedes any configured "cache_pool" // Default: null
  1042. * },
  1043. * x509?: array{
  1044. * provider?: scalar|null,
  1045. * user?: scalar|null, // Default: "SSL_CLIENT_S_DN_Email"
  1046. * credentials?: scalar|null, // Default: "SSL_CLIENT_S_DN"
  1047. * user_identifier?: scalar|null, // Default: "emailAddress"
  1048. * },
  1049. * remote_user?: array{
  1050. * provider?: scalar|null,
  1051. * user?: scalar|null, // Default: "REMOTE_USER"
  1052. * },
  1053. * login_link?: array{
  1054. * check_route: scalar|null, // Route that will validate the login link - e.g. "app_login_link_verify".
  1055. * check_post_only?: scalar|null, // If true, only HTTP POST requests to "check_route" will be handled by the authenticator. // Default: false
  1056. * signature_properties: list<scalar|null>,
  1057. * lifetime?: int, // The lifetime of the login link in seconds. // Default: 600
  1058. * max_uses?: int, // Max number of times a login link can be used - null means unlimited within lifetime. // Default: null
  1059. * used_link_cache?: scalar|null, // Cache service id used to expired links of max_uses is set.
  1060. * success_handler?: scalar|null, // A service id that implements Symfony\Component\Security\Http\Authentication\AuthenticationSuccessHandlerInterface.
  1061. * failure_handler?: scalar|null, // A service id that implements Symfony\Component\Security\Http\Authentication\AuthenticationFailureHandlerInterface.
  1062. * provider?: scalar|null, // The user provider to load users from.
  1063. * secret?: scalar|null, // Default: "%kernel.secret%"
  1064. * always_use_default_target_path?: bool, // Default: false
  1065. * default_target_path?: scalar|null, // Default: "/"
  1066. * login_path?: scalar|null, // Default: "/login"
  1067. * target_path_parameter?: scalar|null, // Default: "_target_path"
  1068. * use_referer?: bool, // Default: false
  1069. * failure_path?: scalar|null, // Default: null
  1070. * failure_forward?: bool, // Default: false
  1071. * failure_path_parameter?: scalar|null, // Default: "_failure_path"
  1072. * },
  1073. * form_login?: array{
  1074. * provider?: scalar|null,
  1075. * remember_me?: bool, // Default: true
  1076. * success_handler?: scalar|null,
  1077. * failure_handler?: scalar|null,
  1078. * check_path?: scalar|null, // Default: "/login_check"
  1079. * use_forward?: bool, // Default: false
  1080. * login_path?: scalar|null, // Default: "/login"
  1081. * username_parameter?: scalar|null, // Default: "_username"
  1082. * password_parameter?: scalar|null, // Default: "_password"
  1083. * csrf_parameter?: scalar|null, // Default: "_csrf_token"
  1084. * csrf_token_id?: scalar|null, // Default: "authenticate"
  1085. * enable_csrf?: bool, // Default: false
  1086. * post_only?: bool, // Default: true
  1087. * form_only?: bool, // Default: false
  1088. * always_use_default_target_path?: bool, // Default: false
  1089. * default_target_path?: scalar|null, // Default: "/"
  1090. * target_path_parameter?: scalar|null, // Default: "_target_path"
  1091. * use_referer?: bool, // Default: false
  1092. * failure_path?: scalar|null, // Default: null
  1093. * failure_forward?: bool, // Default: false
  1094. * failure_path_parameter?: scalar|null, // Default: "_failure_path"
  1095. * },
  1096. * form_login_ldap?: array{
  1097. * provider?: scalar|null,
  1098. * remember_me?: bool, // Default: true
  1099. * success_handler?: scalar|null,
  1100. * failure_handler?: scalar|null,
  1101. * check_path?: scalar|null, // Default: "/login_check"
  1102. * use_forward?: bool, // Default: false
  1103. * login_path?: scalar|null, // Default: "/login"
  1104. * username_parameter?: scalar|null, // Default: "_username"
  1105. * password_parameter?: scalar|null, // Default: "_password"
  1106. * csrf_parameter?: scalar|null, // Default: "_csrf_token"
  1107. * csrf_token_id?: scalar|null, // Default: "authenticate"
  1108. * enable_csrf?: bool, // Default: false
  1109. * post_only?: bool, // Default: true
  1110. * form_only?: bool, // Default: false
  1111. * always_use_default_target_path?: bool, // Default: false
  1112. * default_target_path?: scalar|null, // Default: "/"
  1113. * target_path_parameter?: scalar|null, // Default: "_target_path"
  1114. * use_referer?: bool, // Default: false
  1115. * failure_path?: scalar|null, // Default: null
  1116. * failure_forward?: bool, // Default: false
  1117. * failure_path_parameter?: scalar|null, // Default: "_failure_path"
  1118. * service?: scalar|null, // Default: "ldap"
  1119. * dn_string?: scalar|null, // Default: "{user_identifier}"
  1120. * query_string?: scalar|null,
  1121. * search_dn?: scalar|null, // Default: ""
  1122. * search_password?: scalar|null, // Default: ""
  1123. * },
  1124. * json_login?: array{
  1125. * provider?: scalar|null,
  1126. * remember_me?: bool, // Default: true
  1127. * success_handler?: scalar|null,
  1128. * failure_handler?: scalar|null,
  1129. * check_path?: scalar|null, // Default: "/login_check"
  1130. * use_forward?: bool, // Default: false
  1131. * login_path?: scalar|null, // Default: "/login"
  1132. * username_path?: scalar|null, // Default: "username"
  1133. * password_path?: scalar|null, // Default: "password"
  1134. * },
  1135. * json_login_ldap?: array{
  1136. * provider?: scalar|null,
  1137. * remember_me?: bool, // Default: true
  1138. * success_handler?: scalar|null,
  1139. * failure_handler?: scalar|null,
  1140. * check_path?: scalar|null, // Default: "/login_check"
  1141. * use_forward?: bool, // Default: false
  1142. * login_path?: scalar|null, // Default: "/login"
  1143. * username_path?: scalar|null, // Default: "username"
  1144. * password_path?: scalar|null, // Default: "password"
  1145. * service?: scalar|null, // Default: "ldap"
  1146. * dn_string?: scalar|null, // Default: "{user_identifier}"
  1147. * query_string?: scalar|null,
  1148. * search_dn?: scalar|null, // Default: ""
  1149. * search_password?: scalar|null, // Default: ""
  1150. * },
  1151. * access_token?: array{
  1152. * provider?: scalar|null,
  1153. * remember_me?: bool, // Default: true
  1154. * success_handler?: scalar|null,
  1155. * failure_handler?: scalar|null,
  1156. * realm?: scalar|null, // Default: null
  1157. * token_extractors?: list<scalar|null>,
  1158. * token_handler: string|array{
  1159. * id?: scalar|null,
  1160. * oidc_user_info?: string|array{
  1161. * base_uri: scalar|null, // Base URI of the userinfo endpoint on the OIDC server, or the OIDC server URI to use the discovery (require "discovery" to be configured).
  1162. * discovery?: array{ // Enable the OIDC discovery.
  1163. * cache?: array{
  1164. * id: scalar|null, // Cache service id to use to cache the OIDC discovery configuration.
  1165. * },
  1166. * },
  1167. * claim?: scalar|null, // Claim which contains the user identifier (e.g. sub, email, etc.). // Default: "sub"
  1168. * client?: scalar|null, // HttpClient service id to use to call the OIDC server.
  1169. * },
  1170. * oidc?: array{
  1171. * discovery?: array{ // Enable the OIDC discovery.
  1172. * base_uri: list<scalar|null>,
  1173. * cache?: array{
  1174. * id: scalar|null, // Cache service id to use to cache the OIDC discovery configuration.
  1175. * },
  1176. * },
  1177. * claim?: scalar|null, // Claim which contains the user identifier (e.g.: sub, email..). // Default: "sub"
  1178. * audience: scalar|null, // Audience set in the token, for validation purpose.
  1179. * issuers: list<scalar|null>,
  1180. * algorithm?: array<mixed>,
  1181. * algorithms: list<scalar|null>,
  1182. * key?: scalar|null, // Deprecated: The "key" option is deprecated and will be removed in 8.0. Use the "keyset" option instead. // JSON-encoded JWK used to sign the token (must contain a "kty" key).
  1183. * keyset?: scalar|null, // JSON-encoded JWKSet used to sign the token (must contain a list of valid public keys).
  1184. * encryption?: bool|array{
  1185. * enabled?: bool, // Default: false
  1186. * enforce?: bool, // When enabled, the token shall be encrypted. // Default: false
  1187. * algorithms: list<scalar|null>,
  1188. * keyset: scalar|null, // JSON-encoded JWKSet used to decrypt the token (must contain a list of valid private keys).
  1189. * },
  1190. * },
  1191. * cas?: array{
  1192. * validation_url: scalar|null, // CAS server validation URL
  1193. * prefix?: scalar|null, // CAS prefix // Default: "cas"
  1194. * http_client?: scalar|null, // HTTP Client service // Default: null
  1195. * },
  1196. * oauth2?: scalar|null,
  1197. * },
  1198. * },
  1199. * http_basic?: array{
  1200. * provider?: scalar|null,
  1201. * realm?: scalar|null, // Default: "Secured Area"
  1202. * },
  1203. * http_basic_ldap?: array{
  1204. * provider?: scalar|null,
  1205. * realm?: scalar|null, // Default: "Secured Area"
  1206. * service?: scalar|null, // Default: "ldap"
  1207. * dn_string?: scalar|null, // Default: "{user_identifier}"
  1208. * query_string?: scalar|null,
  1209. * search_dn?: scalar|null, // Default: ""
  1210. * search_password?: scalar|null, // Default: ""
  1211. * },
  1212. * remember_me?: array{
  1213. * secret?: scalar|null, // Default: "%kernel.secret%"
  1214. * service?: scalar|null,
  1215. * user_providers?: list<scalar|null>,
  1216. * catch_exceptions?: bool, // Default: true
  1217. * signature_properties?: list<scalar|null>,
  1218. * token_provider?: string|array{
  1219. * service?: scalar|null, // The service ID of a custom remember-me token provider.
  1220. * doctrine?: bool|array{
  1221. * enabled?: bool, // Default: false
  1222. * connection?: scalar|null, // Default: null
  1223. * },
  1224. * },
  1225. * token_verifier?: scalar|null, // The service ID of a custom rememberme token verifier.
  1226. * name?: scalar|null, // Default: "REMEMBERME"
  1227. * lifetime?: int, // Default: 31536000
  1228. * path?: scalar|null, // Default: "/"
  1229. * domain?: scalar|null, // Default: null
  1230. * secure?: true|false|"auto", // Default: false
  1231. * httponly?: bool, // Default: true
  1232. * samesite?: null|"lax"|"strict"|"none", // Default: null
  1233. * always_remember_me?: bool, // Default: false
  1234. * remember_me_parameter?: scalar|null, // Default: "_remember_me"
  1235. * },
  1236. * }>,
  1237. * access_control?: list<array{ // Default: []
  1238. * request_matcher?: scalar|null, // Default: null
  1239. * requires_channel?: scalar|null, // Default: null
  1240. * path?: scalar|null, // Use the urldecoded format. // Default: null
  1241. * host?: scalar|null, // Default: null
  1242. * port?: int, // Default: null
  1243. * ips?: list<scalar|null>,
  1244. * attributes?: array<string, scalar|null>,
  1245. * route?: scalar|null, // Default: null
  1246. * methods?: list<scalar|null>,
  1247. * allow_if?: scalar|null, // Default: null
  1248. * roles?: list<scalar|null>,
  1249. * }>,
  1250. * role_hierarchy?: array<string, string|list<scalar|null>>,
  1251. * }
  1252. * @psalm-type TwigConfig = array{
  1253. * form_themes?: list<scalar|null>,
  1254. * globals?: array<string, array{ // Default: []
  1255. * id?: scalar|null,
  1256. * type?: scalar|null,
  1257. * value?: mixed,
  1258. * }>,
  1259. * autoescape_service?: scalar|null, // Default: null
  1260. * autoescape_service_method?: scalar|null, // Default: null
  1261. * base_template_class?: scalar|null, // Deprecated: The child node "base_template_class" at path "twig.base_template_class" is deprecated.
  1262. * cache?: scalar|null, // Default: true
  1263. * charset?: scalar|null, // Default: "%kernel.charset%"
  1264. * debug?: bool, // Default: "%kernel.debug%"
  1265. * strict_variables?: bool, // Default: "%kernel.debug%"
  1266. * auto_reload?: scalar|null,
  1267. * optimizations?: int,
  1268. * default_path?: scalar|null, // The default path used to load templates. // Default: "%kernel.project_dir%/templates"
  1269. * file_name_pattern?: list<scalar|null>,
  1270. * paths?: array<string, mixed>,
  1271. * date?: array{ // The default format options used by the date filter.
  1272. * format?: scalar|null, // Default: "F j, Y H:i"
  1273. * interval_format?: scalar|null, // Default: "%d days"
  1274. * timezone?: scalar|null, // The timezone used when formatting dates, when set to null, the timezone returned by date_default_timezone_get() is used. // Default: null
  1275. * },
  1276. * number_format?: array{ // The default format options for the number_format filter.
  1277. * decimals?: int, // Default: 0
  1278. * decimal_point?: scalar|null, // Default: "."
  1279. * thousands_separator?: scalar|null, // Default: ","
  1280. * },
  1281. * mailer?: array{
  1282. * html_to_text_converter?: scalar|null, // A service implementing the "Symfony\Component\Mime\HtmlToTextConverter\HtmlToTextConverterInterface". // Default: null
  1283. * },
  1284. * }
  1285. * @psalm-type WebProfilerConfig = array{
  1286. * toolbar?: bool|array{ // Profiler toolbar configuration
  1287. * enabled?: bool, // Default: false
  1288. * ajax_replace?: bool, // Replace toolbar on AJAX requests // Default: false
  1289. * },
  1290. * intercept_redirects?: bool, // Default: false
  1291. * excluded_ajax_paths?: scalar|null, // Default: "^/((index|app(_[\\w]+)?)\\.php/)?_wdt"
  1292. * }
  1293. * @psalm-type MonologConfig = array{
  1294. * use_microseconds?: scalar|null, // Default: true
  1295. * channels?: list<scalar|null>,
  1296. * handlers?: array<string, array{ // Default: []
  1297. * type: scalar|null,
  1298. * id?: scalar|null,
  1299. * enabled?: bool, // Default: true
  1300. * priority?: scalar|null, // Default: 0
  1301. * level?: scalar|null, // Default: "DEBUG"
  1302. * bubble?: bool, // Default: true
  1303. * interactive_only?: bool, // Default: false
  1304. * app_name?: scalar|null, // Default: null
  1305. * fill_extra_context?: bool, // Default: false
  1306. * include_stacktraces?: bool, // Default: false
  1307. * process_psr_3_messages?: array{
  1308. * enabled?: bool|null, // Default: null
  1309. * date_format?: scalar|null,
  1310. * remove_used_context_fields?: bool,
  1311. * },
  1312. * path?: scalar|null, // Default: "%kernel.logs_dir%/%kernel.environment%.log"
  1313. * file_permission?: scalar|null, // Default: null
  1314. * use_locking?: bool, // Default: false
  1315. * filename_format?: scalar|null, // Default: "{filename}-{date}"
  1316. * date_format?: scalar|null, // Default: "Y-m-d"
  1317. * ident?: scalar|null, // Default: false
  1318. * logopts?: scalar|null, // Default: 1
  1319. * facility?: scalar|null, // Default: "user"
  1320. * max_files?: scalar|null, // Default: 0
  1321. * action_level?: scalar|null, // Default: "WARNING"
  1322. * activation_strategy?: scalar|null, // Default: null
  1323. * stop_buffering?: bool, // Default: true
  1324. * passthru_level?: scalar|null, // Default: null
  1325. * excluded_404s?: list<scalar|null>,
  1326. * excluded_http_codes?: list<array{ // Default: []
  1327. * code?: scalar|null,
  1328. * urls?: list<scalar|null>,
  1329. * }>,
  1330. * accepted_levels?: list<scalar|null>,
  1331. * min_level?: scalar|null, // Default: "DEBUG"
  1332. * max_level?: scalar|null, // Default: "EMERGENCY"
  1333. * buffer_size?: scalar|null, // Default: 0
  1334. * flush_on_overflow?: bool, // Default: false
  1335. * handler?: scalar|null,
  1336. * url?: scalar|null,
  1337. * exchange?: scalar|null,
  1338. * exchange_name?: scalar|null, // Default: "log"
  1339. * room?: scalar|null,
  1340. * message_format?: scalar|null, // Default: "text"
  1341. * api_version?: scalar|null, // Default: null
  1342. * channel?: scalar|null, // Default: null
  1343. * bot_name?: scalar|null, // Default: "Monolog"
  1344. * use_attachment?: scalar|null, // Default: true
  1345. * use_short_attachment?: scalar|null, // Default: false
  1346. * include_extra?: scalar|null, // Default: false
  1347. * icon_emoji?: scalar|null, // Default: null
  1348. * webhook_url?: scalar|null,
  1349. * exclude_fields?: list<scalar|null>,
  1350. * team?: scalar|null,
  1351. * notify?: scalar|null, // Default: false
  1352. * nickname?: scalar|null, // Default: "Monolog"
  1353. * token?: scalar|null,
  1354. * region?: scalar|null,
  1355. * source?: scalar|null,
  1356. * use_ssl?: bool, // Default: true
  1357. * user?: mixed,
  1358. * title?: scalar|null, // Default: null
  1359. * host?: scalar|null, // Default: null
  1360. * port?: scalar|null, // Default: 514
  1361. * config?: list<scalar|null>,
  1362. * members?: list<scalar|null>,
  1363. * connection_string?: scalar|null,
  1364. * timeout?: scalar|null,
  1365. * time?: scalar|null, // Default: 60
  1366. * deduplication_level?: scalar|null, // Default: 400
  1367. * store?: scalar|null, // Default: null
  1368. * connection_timeout?: scalar|null,
  1369. * persistent?: bool,
  1370. * dsn?: scalar|null,
  1371. * hub_id?: scalar|null, // Default: null
  1372. * client_id?: scalar|null, // Default: null
  1373. * auto_log_stacks?: scalar|null, // Default: false
  1374. * release?: scalar|null, // Default: null
  1375. * environment?: scalar|null, // Default: null
  1376. * message_type?: scalar|null, // Default: 0
  1377. * parse_mode?: scalar|null, // Default: null
  1378. * disable_webpage_preview?: bool|null, // Default: null
  1379. * disable_notification?: bool|null, // Default: null
  1380. * split_long_messages?: bool, // Default: false
  1381. * delay_between_messages?: bool, // Default: false
  1382. * topic?: int, // Default: null
  1383. * factor?: int, // Default: 1
  1384. * tags?: list<scalar|null>,
  1385. * console_formater_options?: mixed, // Deprecated: "monolog.handlers..console_formater_options.console_formater_options" is deprecated, use "monolog.handlers..console_formater_options.console_formatter_options" instead.
  1386. * console_formatter_options?: mixed, // Default: []
  1387. * formatter?: scalar|null,
  1388. * nested?: bool, // Default: false
  1389. * publisher?: string|array{
  1390. * id?: scalar|null,
  1391. * hostname?: scalar|null,
  1392. * port?: scalar|null, // Default: 12201
  1393. * chunk_size?: scalar|null, // Default: 1420
  1394. * encoder?: "json"|"compressed_json",
  1395. * },
  1396. * mongo?: string|array{
  1397. * id?: scalar|null,
  1398. * host?: scalar|null,
  1399. * port?: scalar|null, // Default: 27017
  1400. * user?: scalar|null,
  1401. * pass?: scalar|null,
  1402. * database?: scalar|null, // Default: "monolog"
  1403. * collection?: scalar|null, // Default: "logs"
  1404. * },
  1405. * mongodb?: string|array{
  1406. * id?: scalar|null, // ID of a MongoDB\Client service
  1407. * uri?: scalar|null,
  1408. * username?: scalar|null,
  1409. * password?: scalar|null,
  1410. * database?: scalar|null, // Default: "monolog"
  1411. * collection?: scalar|null, // Default: "logs"
  1412. * },
  1413. * elasticsearch?: string|array{
  1414. * id?: scalar|null,
  1415. * hosts?: list<scalar|null>,
  1416. * host?: scalar|null,
  1417. * port?: scalar|null, // Default: 9200
  1418. * transport?: scalar|null, // Default: "Http"
  1419. * user?: scalar|null, // Default: null
  1420. * password?: scalar|null, // Default: null
  1421. * },
  1422. * index?: scalar|null, // Default: "monolog"
  1423. * document_type?: scalar|null, // Default: "logs"
  1424. * ignore_error?: scalar|null, // Default: false
  1425. * redis?: string|array{
  1426. * id?: scalar|null,
  1427. * host?: scalar|null,
  1428. * password?: scalar|null, // Default: null
  1429. * port?: scalar|null, // Default: 6379
  1430. * database?: scalar|null, // Default: 0
  1431. * key_name?: scalar|null, // Default: "monolog_redis"
  1432. * },
  1433. * predis?: string|array{
  1434. * id?: scalar|null,
  1435. * host?: scalar|null,
  1436. * },
  1437. * from_email?: scalar|null,
  1438. * to_email?: list<scalar|null>,
  1439. * subject?: scalar|null,
  1440. * content_type?: scalar|null, // Default: null
  1441. * headers?: list<scalar|null>,
  1442. * mailer?: scalar|null, // Default: null
  1443. * email_prototype?: string|array{
  1444. * id: scalar|null,
  1445. * method?: scalar|null, // Default: null
  1446. * },
  1447. * lazy?: bool, // Default: true
  1448. * verbosity_levels?: array{
  1449. * VERBOSITY_QUIET?: scalar|null, // Default: "ERROR"
  1450. * VERBOSITY_NORMAL?: scalar|null, // Default: "WARNING"
  1451. * VERBOSITY_VERBOSE?: scalar|null, // Default: "NOTICE"
  1452. * VERBOSITY_VERY_VERBOSE?: scalar|null, // Default: "INFO"
  1453. * VERBOSITY_DEBUG?: scalar|null, // Default: "DEBUG"
  1454. * },
  1455. * channels?: string|array{
  1456. * type?: scalar|null,
  1457. * elements?: list<scalar|null>,
  1458. * },
  1459. * }>,
  1460. * }
  1461. * @psalm-type MakerConfig = array{
  1462. * root_namespace?: scalar|null, // Default: "App"
  1463. * generate_final_classes?: bool, // Default: true
  1464. * generate_final_entities?: bool, // Default: false
  1465. * }
  1466. * @psalm-type WebpackEncoreConfig = array{
  1467. * output_path: scalar|null, // The path where Encore is building the assets - i.e. Encore.setOutputPath()
  1468. * crossorigin?: false|"anonymous"|"use-credentials", // crossorigin value when Encore.enableIntegrityHashes() is used, can be false (default), anonymous or use-credentials // Default: false
  1469. * preload?: bool, // preload all rendered script and link tags automatically via the http2 Link header. // Default: false
  1470. * cache?: bool, // Enable caching of the entry point file(s) // Default: false
  1471. * strict_mode?: bool, // Throw an exception if the entrypoints.json file is missing or an entry is missing from the data // Default: true
  1472. * builds?: array<string, scalar|null>,
  1473. * script_attributes?: array<string, scalar|null>,
  1474. * link_attributes?: array<string, scalar|null>,
  1475. * }
  1476. * @psalm-type DebugConfig = array{
  1477. * max_items?: int, // Max number of displayed items past the first level, -1 means no limit. // Default: 2500
  1478. * min_depth?: int, // Minimum tree depth to clone all the items, 1 is default. // Default: 1
  1479. * max_string_length?: int, // Max length of displayed strings, -1 means no limit. // Default: -1
  1480. * dump_destination?: scalar|null, // A stream URL where dumps should be written to. // Default: null
  1481. * theme?: "dark"|"light", // Changes the color of the dump() output when rendered directly on the templating. "dark" (default) or "light". // Default: "dark"
  1482. * }
  1483. * @psalm-type TwigExtraConfig = array{
  1484. * cache?: bool|array{
  1485. * enabled?: bool, // Default: false
  1486. * },
  1487. * html?: bool|array{
  1488. * enabled?: bool, // Default: false
  1489. * },
  1490. * markdown?: bool|array{
  1491. * enabled?: bool, // Default: true
  1492. * },
  1493. * intl?: bool|array{
  1494. * enabled?: bool, // Default: false
  1495. * },
  1496. * cssinliner?: bool|array{
  1497. * enabled?: bool, // Default: false
  1498. * },
  1499. * inky?: bool|array{
  1500. * enabled?: bool, // Default: false
  1501. * },
  1502. * string?: bool|array{
  1503. * enabled?: bool, // Default: false
  1504. * },
  1505. * commonmark?: array{
  1506. * renderer?: array{ // Array of options for rendering HTML.
  1507. * block_separator?: scalar|null,
  1508. * inner_separator?: scalar|null,
  1509. * soft_break?: scalar|null,
  1510. * },
  1511. * html_input?: "strip"|"allow"|"escape", // How to handle HTML input.
  1512. * allow_unsafe_links?: bool, // Remove risky link and image URLs by setting this to false. // Default: true
  1513. * max_nesting_level?: int, // The maximum nesting level for blocks. // Default: 9223372036854775807
  1514. * max_delimiters_per_line?: int, // The maximum number of strong/emphasis delimiters per line. // Default: 9223372036854775807
  1515. * slug_normalizer?: array{ // Array of options for configuring how URL-safe slugs are created.
  1516. * instance?: mixed,
  1517. * max_length?: int, // Default: 255
  1518. * unique?: mixed,
  1519. * },
  1520. * commonmark?: array{ // Array of options for configuring the CommonMark core extension.
  1521. * enable_em?: bool, // Default: true
  1522. * enable_strong?: bool, // Default: true
  1523. * use_asterisk?: bool, // Default: true
  1524. * use_underscore?: bool, // Default: true
  1525. * unordered_list_markers?: list<scalar|null>,
  1526. * },
  1527. * ...<mixed>
  1528. * },
  1529. * }
  1530. * @psalm-type StimulusConfig = array{
  1531. * controller_paths?: list<scalar|null>,
  1532. * controllers_json?: scalar|null, // Default: "%kernel.project_dir%/assets/controllers.json"
  1533. * }
  1534. * @psalm-type ConfigType = array{
  1535. * imports?: ImportsConfig,
  1536. * parameters?: ParametersConfig,
  1537. * services?: ServicesConfig,
  1538. * framework?: FrameworkConfig,
  1539. * doctrine?: DoctrineConfig,
  1540. * doctrine_migrations?: DoctrineMigrationsConfig,
  1541. * security?: SecurityConfig,
  1542. * twig?: TwigConfig,
  1543. * monolog?: MonologConfig,
  1544. * webpack_encore?: WebpackEncoreConfig,
  1545. * twig_extra?: TwigExtraConfig,
  1546. * stimulus?: StimulusConfig,
  1547. * "when@dev"?: array{
  1548. * imports?: ImportsConfig,
  1549. * parameters?: ParametersConfig,
  1550. * services?: ServicesConfig,
  1551. * framework?: FrameworkConfig,
  1552. * doctrine?: DoctrineConfig,
  1553. * doctrine_migrations?: DoctrineMigrationsConfig,
  1554. * security?: SecurityConfig,
  1555. * twig?: TwigConfig,
  1556. * web_profiler?: WebProfilerConfig,
  1557. * monolog?: MonologConfig,
  1558. * maker?: MakerConfig,
  1559. * webpack_encore?: WebpackEncoreConfig,
  1560. * debug?: DebugConfig,
  1561. * twig_extra?: TwigExtraConfig,
  1562. * stimulus?: StimulusConfig,
  1563. * },
  1564. * "when@prod"?: array{
  1565. * imports?: ImportsConfig,
  1566. * parameters?: ParametersConfig,
  1567. * services?: ServicesConfig,
  1568. * framework?: FrameworkConfig,
  1569. * doctrine?: DoctrineConfig,
  1570. * doctrine_migrations?: DoctrineMigrationsConfig,
  1571. * security?: SecurityConfig,
  1572. * twig?: TwigConfig,
  1573. * monolog?: MonologConfig,
  1574. * webpack_encore?: WebpackEncoreConfig,
  1575. * twig_extra?: TwigExtraConfig,
  1576. * stimulus?: StimulusConfig,
  1577. * },
  1578. * "when@test"?: array{
  1579. * imports?: ImportsConfig,
  1580. * parameters?: ParametersConfig,
  1581. * services?: ServicesConfig,
  1582. * framework?: FrameworkConfig,
  1583. * doctrine?: DoctrineConfig,
  1584. * doctrine_migrations?: DoctrineMigrationsConfig,
  1585. * security?: SecurityConfig,
  1586. * twig?: TwigConfig,
  1587. * web_profiler?: WebProfilerConfig,
  1588. * monolog?: MonologConfig,
  1589. * webpack_encore?: WebpackEncoreConfig,
  1590. * twig_extra?: TwigExtraConfig,
  1591. * stimulus?: StimulusConfig,
  1592. * },
  1593. * ...<string, ExtensionType|array{ // extra keys must follow the when@%env% pattern or match an extension alias
  1594. * imports?: ImportsConfig,
  1595. * parameters?: ParametersConfig,
  1596. * services?: ServicesConfig,
  1597. * ...<string, ExtensionType>,
  1598. * }>
  1599. * }
  1600. */
  1601. final class App
  1602. {
  1603. /**
  1604. * @param ConfigType $config
  1605. *
  1606. * @psalm-return ConfigType
  1607. */
  1608. public static function config(array $config): array
  1609. {
  1610. return AppReference::config($config);
  1611. }
  1612. }
  1613. namespace Symfony\Component\Routing\Loader\Configurator;
  1614. /**
  1615. * This class provides array-shapes for configuring the routes of an application.
  1616. *
  1617. * Example:
  1618. *
  1619. * ```php
  1620. * // config/routes.php
  1621. * namespace Symfony\Component\Routing\Loader\Configurator;
  1622. *
  1623. * return Routes::config([
  1624. * 'controllers' => [
  1625. * 'resource' => 'routing.controllers',
  1626. * ],
  1627. * ]);
  1628. * ```
  1629. *
  1630. * @psalm-type RouteConfig = array{
  1631. * path: string|array<string,string>,
  1632. * controller?: string,
  1633. * methods?: string|list<string>,
  1634. * requirements?: array<string,string>,
  1635. * defaults?: array<string,mixed>,
  1636. * options?: array<string,mixed>,
  1637. * host?: string|array<string,string>,
  1638. * schemes?: string|list<string>,
  1639. * condition?: string,
  1640. * locale?: string,
  1641. * format?: string,
  1642. * utf8?: bool,
  1643. * stateless?: bool,
  1644. * }
  1645. * @psalm-type ImportConfig = array{
  1646. * resource: string,
  1647. * type?: string,
  1648. * exclude?: string|list<string>,
  1649. * prefix?: string|array<string,string>,
  1650. * name_prefix?: string,
  1651. * trailing_slash_on_root?: bool,
  1652. * controller?: string,
  1653. * methods?: string|list<string>,
  1654. * requirements?: array<string,string>,
  1655. * defaults?: array<string,mixed>,
  1656. * options?: array<string,mixed>,
  1657. * host?: string|array<string,string>,
  1658. * schemes?: string|list<string>,
  1659. * condition?: string,
  1660. * locale?: string,
  1661. * format?: string,
  1662. * utf8?: bool,
  1663. * stateless?: bool,
  1664. * }
  1665. * @psalm-type AliasConfig = array{
  1666. * alias: string,
  1667. * deprecated?: array{package:string, version:string, message?:string},
  1668. * }
  1669. * @psalm-type RoutesConfig = array{
  1670. * "when@dev"?: array<string, RouteConfig|ImportConfig|AliasConfig>,
  1671. * "when@prod"?: array<string, RouteConfig|ImportConfig|AliasConfig>,
  1672. * "when@test"?: array<string, RouteConfig|ImportConfig|AliasConfig>,
  1673. * ...<string, RouteConfig|ImportConfig|AliasConfig>
  1674. * }
  1675. */
  1676. final class Routes
  1677. {
  1678. /**
  1679. * @param RoutesConfig $config
  1680. *
  1681. * @psalm-return RoutesConfig
  1682. */
  1683. public static function config(array $config): array
  1684. {
  1685. return $config;
  1686. }
  1687. }