reference.php 106 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737
  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. use Symfony\Component\Config\Loader\ParamConfigurator as Param;
  5. /**
  6. * This class provides array-shapes for configuring the services and bundles of an application.
  7. *
  8. * Services declared with the config() method below are autowired and autoconfigured by default.
  9. *
  10. * This is for apps only. Bundles SHOULD NOT use it.
  11. *
  12. * Example:
  13. *
  14. * ```php
  15. * // config/services.php
  16. * namespace Symfony\Component\DependencyInjection\Loader\Configurator;
  17. *
  18. * return App::config([
  19. * 'services' => [
  20. * 'App\\' => [
  21. * 'resource' => '../src/',
  22. * ],
  23. * ],
  24. * ]);
  25. * ```
  26. *
  27. * @psalm-type ImportsConfig = list<string|array{
  28. * resource: string,
  29. * type?: string|null,
  30. * ignore_errors?: bool|'not_found',
  31. * }>
  32. * @psalm-type ParametersConfig = array<string, scalar|\UnitEnum|array<scalar|\UnitEnum|array<mixed>|Param|null>|Param|null>
  33. * @psalm-type ArgumentsType = list<mixed>|array<string, mixed>
  34. * @psalm-type CallType = array<string, ArgumentsType>|array{0:string, 1?:ArgumentsType, 2?:bool}|array{method:string, arguments?:ArgumentsType, returns_clone?:bool}
  35. * @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
  36. * @psalm-type CallbackType = string|array{0:string|ReferenceConfigurator,1:string}|\Closure|ReferenceConfigurator|ExpressionConfigurator
  37. * @psalm-type DeprecationType = array{package: string, version: string, message?: string}
  38. * @psalm-type DefaultsType = array{
  39. * public?: bool,
  40. * tags?: TagsType,
  41. * resource_tags?: TagsType,
  42. * autowire?: bool,
  43. * autoconfigure?: bool,
  44. * bind?: array<string, mixed>,
  45. * }
  46. * @psalm-type InstanceofType = array{
  47. * shared?: bool,
  48. * lazy?: bool|string,
  49. * public?: bool,
  50. * properties?: array<string, mixed>,
  51. * configurator?: CallbackType,
  52. * calls?: list<CallType>,
  53. * tags?: TagsType,
  54. * resource_tags?: TagsType,
  55. * autowire?: bool,
  56. * bind?: array<string, mixed>,
  57. * constructor?: string,
  58. * }
  59. * @psalm-type DefinitionType = array{
  60. * class?: string,
  61. * file?: string,
  62. * parent?: string,
  63. * shared?: bool,
  64. * synthetic?: bool,
  65. * lazy?: bool|string,
  66. * public?: bool,
  67. * abstract?: bool,
  68. * deprecated?: DeprecationType,
  69. * factory?: CallbackType,
  70. * configurator?: CallbackType,
  71. * arguments?: ArgumentsType,
  72. * properties?: array<string, mixed>,
  73. * calls?: list<CallType>,
  74. * tags?: TagsType,
  75. * resource_tags?: TagsType,
  76. * decorates?: string,
  77. * decorates_tag?: string,
  78. * decoration_inner_name?: string,
  79. * decoration_priority?: int,
  80. * decoration_on_invalid?: 'exception'|'ignore'|null,
  81. * autowire?: bool,
  82. * autoconfigure?: bool,
  83. * bind?: array<string, mixed>,
  84. * constructor?: string,
  85. * from_callable?: CallbackType,
  86. * }
  87. * @psalm-type AliasType = string|array{
  88. * alias: string,
  89. * public?: bool,
  90. * deprecated?: DeprecationType,
  91. * }
  92. * @psalm-type PrototypeType = array{
  93. * resource: string,
  94. * namespace?: string,
  95. * exclude?: string|list<string>,
  96. * parent?: string,
  97. * shared?: bool,
  98. * lazy?: bool|string,
  99. * public?: bool,
  100. * abstract?: bool,
  101. * deprecated?: DeprecationType,
  102. * factory?: CallbackType,
  103. * arguments?: ArgumentsType,
  104. * properties?: array<string, mixed>,
  105. * configurator?: CallbackType,
  106. * calls?: list<CallType>,
  107. * tags?: TagsType,
  108. * resource_tags?: TagsType,
  109. * autowire?: bool,
  110. * autoconfigure?: bool,
  111. * bind?: array<string, mixed>,
  112. * constructor?: string,
  113. * }
  114. * @psalm-type StackType = array{
  115. * stack: list<DefinitionType|AliasType|PrototypeType|array<class-string, ArgumentsType|null>>,
  116. * public?: bool,
  117. * deprecated?: DeprecationType,
  118. * decorates?: string,
  119. * decorates_tag?: string,
  120. * decoration_inner_name?: string,
  121. * decoration_priority?: int,
  122. * decoration_on_invalid?: 'exception'|'ignore'|null,
  123. * }
  124. * @psalm-type ServicesConfig = array{
  125. * _defaults?: DefaultsType,
  126. * _instanceof?: array<class-string, InstanceofType>,
  127. * ...<string, DefinitionType|AliasType|PrototypeType|StackType|ArgumentsType|null>
  128. * }
  129. * @psalm-type ExtensionType = array<string, mixed>
  130. * @psalm-type FrameworkConfig = array{
  131. * secret?: scalar|Param|null,
  132. * http_method_override?: bool|Param, // Set true to enable support for the '_method' request parameter to determine the intended HTTP method on POST requests. // Default: false
  133. * allowed_http_method_override?: null|list<string|Param>,
  134. * trust_x_sendfile_type_header?: scalar|Param|null, // Set true to enable support for xsendfile in binary file responses. // Default: "%env(bool:default::SYMFONY_TRUST_X_SENDFILE_TYPE_HEADER)%"
  135. * ide?: scalar|Param|null, // Default: "%env(default::SYMFONY_IDE)%"
  136. * test?: bool|Param,
  137. * default_locale?: scalar|Param|null, // Default: "en"
  138. * set_locale_from_accept_language?: bool|Param, // Whether to use the Accept-Language HTTP header to set the Request locale (only when the "_locale" request attribute is not passed). // Default: false
  139. * set_content_language_from_locale?: bool|Param, // Whether to set the Content-Language HTTP header on the Response using the Request locale. // Default: false
  140. * enabled_locales?: list<scalar|Param|null>,
  141. * trusted_hosts?: Param|string|list<scalar|Param|null>,
  142. * trusted_proxies?: mixed, // Default: ["%env(default::SYMFONY_TRUSTED_PROXIES)%"]
  143. * trusted_headers?: Param|string|list<scalar|Param|null>,
  144. * error_controller?: scalar|Param|null, // Default: "error_controller"
  145. * handle_all_throwables?: bool|Param, // HttpKernel will handle all kinds of \Throwable. // Default: true
  146. * csrf_protection?: bool|array{
  147. * enabled?: scalar|Param|null, // Default: null
  148. * stateless_token_ids?: list<scalar|Param|null>,
  149. * check_header?: scalar|Param|null, // Whether to check the CSRF token in a header in addition to a cookie when using stateless protection. // Default: false
  150. * cookie_name?: scalar|Param|null, // The name of the cookie to use when using stateless protection. // Default: "csrf-token"
  151. * },
  152. * form?: bool|array{ // Form configuration
  153. * enabled?: bool|Param, // Default: false
  154. * csrf_protection?: bool|array{
  155. * enabled?: scalar|Param|null, // Default: null
  156. * token_id?: scalar|Param|null, // Default: null
  157. * field_name?: scalar|Param|null, // Default: "_token"
  158. * field_attr?: array<string, scalar|Param|null>,
  159. * },
  160. * },
  161. * http_cache?: bool|array{ // HTTP cache configuration
  162. * enabled?: bool|Param, // Default: false
  163. * debug?: bool|Param, // Default: "%kernel.debug%"
  164. * trace_level?: "none"|"short"|"full"|Param,
  165. * trace_header?: scalar|Param|null,
  166. * default_ttl?: int|Param,
  167. * private_headers?: list<scalar|Param|null>,
  168. * skip_response_headers?: list<scalar|Param|null>,
  169. * allow_reload?: bool|Param,
  170. * allow_revalidate?: bool|Param,
  171. * stale_while_revalidate?: int|Param,
  172. * stale_if_error?: int|Param,
  173. * terminate_on_cache_hit?: bool|Param, // Deprecated: Setting the "framework.http_cache.terminate_on_cache_hit.terminate_on_cache_hit" configuration option is deprecated. It will be removed in version 9.0.
  174. * },
  175. * esi?: bool|array{ // ESI configuration
  176. * enabled?: bool|Param, // Default: false
  177. * },
  178. * ssi?: bool|array{ // SSI configuration
  179. * enabled?: bool|Param, // Default: false
  180. * },
  181. * fragments?: bool|array{ // Fragments configuration
  182. * enabled?: bool|Param, // Default: false
  183. * hinclude_default_template?: scalar|Param|null, // Default: null
  184. * path?: scalar|Param|null, // Default: "/_fragment"
  185. * },
  186. * profiler?: bool|array{ // Profiler configuration
  187. * enabled?: bool|Param, // Default: false
  188. * collect?: bool|Param, // Default: true
  189. * collect_parameter?: scalar|Param|null, // The name of the parameter to use to enable or disable collection on a per request basis. // Default: null
  190. * only_exceptions?: bool|Param, // Default: false
  191. * only_main_requests?: bool|Param, // Default: false
  192. * dsn?: scalar|Param|null, // Default: "file:%kernel.cache_dir%/profiler"
  193. * collect_serializer_data?: true|Param, // Deprecated: Setting the "framework.profiler.collect_serializer_data.collect_serializer_data" configuration option is deprecated. It will be removed in version 9.0. // Default: true
  194. * },
  195. * workflows?: bool|array{
  196. * enabled?: bool|Param, // Default: false
  197. * workflows?: array<string, array{ // Default: []
  198. * audit_trail?: bool|array{
  199. * enabled?: bool|Param, // Default: false
  200. * },
  201. * type?: "workflow"|"state_machine"|Param, // Default: "state_machine"
  202. * marking_store?: array{
  203. * type?: "method"|Param,
  204. * property?: scalar|Param|null,
  205. * service?: scalar|Param|null,
  206. * },
  207. * supports?: Param|string|list<scalar|Param|null>,
  208. * definition_validators?: list<scalar|Param|null>,
  209. * support_strategy?: scalar|Param|null,
  210. * initial_marking?: \BackedEnum|Param|string|list<scalar|Param|null>,
  211. * events_to_dispatch?: null|list<string|Param>,
  212. * places?: Param|string|list<array{ // Default: []
  213. * name?: scalar|Param|null,
  214. * metadata?: array<string, mixed>,
  215. * }>,
  216. * transitions?: list<array{ // Default: []
  217. * name?: string|Param,
  218. * guard?: string|Param, // An expression to block the transition.
  219. * from?: \BackedEnum|Param|string|list<array{ // Default: []
  220. * place?: string|Param,
  221. * weight?: int|Param, // Default: 1
  222. * }>,
  223. * to?: \BackedEnum|Param|string|list<array{ // Default: []
  224. * place?: string|Param,
  225. * weight?: int|Param, // Default: 1
  226. * }>,
  227. * weight?: int|Param, // Default: 1
  228. * metadata?: array<string, mixed>,
  229. * }>,
  230. * metadata?: array<string, mixed>,
  231. * }>,
  232. * },
  233. * router?: bool|array{ // Router configuration
  234. * enabled?: bool|Param, // Default: false
  235. * resource?: scalar|Param|null,
  236. * type?: scalar|Param|null,
  237. * default_uri?: scalar|Param|null, // The default URI used to generate URLs in a non-HTTP context. // Default: null
  238. * http_port?: scalar|Param|null, // Default: 80
  239. * https_port?: scalar|Param|null, // Default: 443
  240. * strict_requirements?: scalar|Param|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
  241. * utf8?: bool|Param, // Default: true
  242. * },
  243. * session?: bool|array{ // Session configuration
  244. * enabled?: bool|Param, // Default: false
  245. * storage_factory_id?: scalar|Param|null, // Default: "session.storage.factory.native"
  246. * handler_id?: scalar|Param|null, // Defaults to using the native session handler, or to the native *file* session handler if "save_path" is not null.
  247. * name?: scalar|Param|null,
  248. * cookie_lifetime?: scalar|Param|null,
  249. * cookie_path?: scalar|Param|null,
  250. * cookie_domain?: scalar|Param|null,
  251. * cookie_secure?: true|false|"auto"|Param, // Default: "auto"
  252. * cookie_httponly?: bool|Param, // Default: true
  253. * cookie_samesite?: null|"lax"|"strict"|"none"|Param, // Default: "lax"
  254. * use_cookies?: bool|Param,
  255. * gc_divisor?: scalar|Param|null,
  256. * gc_probability?: scalar|Param|null,
  257. * gc_maxlifetime?: scalar|Param|null,
  258. * save_path?: scalar|Param|null, // Defaults to "%kernel.cache_dir%/sessions" if the "handler_id" option is not null.
  259. * metadata_update_threshold?: int|Param, // Seconds to wait between 2 session metadata updates. // Default: 0
  260. * },
  261. * request?: bool|array{ // Request configuration
  262. * enabled?: bool|Param, // Default: false
  263. * formats?: array<string, Param|string|list<scalar|Param|null>>,
  264. * },
  265. * assets?: bool|array{ // Assets configuration
  266. * enabled?: bool|Param, // Default: true
  267. * strict_mode?: bool|Param, // Throw an exception if an entry is missing from the manifest.json. // Default: false
  268. * version_strategy?: scalar|Param|null, // Default: null
  269. * version?: scalar|Param|null, // Default: null
  270. * version_format?: scalar|Param|null, // Default: "%%s?%%s"
  271. * json_manifest_path?: scalar|Param|null, // Default: null
  272. * base_path?: scalar|Param|null, // Default: ""
  273. * base_urls?: Param|string|list<scalar|Param|null>,
  274. * packages?: array<string, array{ // Default: []
  275. * strict_mode?: bool|Param, // Throw an exception if an entry is missing from the manifest.json. // Default: false
  276. * version_strategy?: scalar|Param|null, // Default: null
  277. * version?: scalar|Param|null,
  278. * version_format?: scalar|Param|null, // Default: null
  279. * json_manifest_path?: scalar|Param|null, // Default: null
  280. * base_path?: scalar|Param|null, // Default: ""
  281. * base_urls?: Param|string|list<scalar|Param|null>,
  282. * }>,
  283. * },
  284. * asset_mapper?: bool|array{ // Asset Mapper configuration
  285. * enabled?: bool|Param, // Default: false
  286. * paths?: Param|string|array<string, scalar|Param|null>,
  287. * excluded_patterns?: list<scalar|Param|null>,
  288. * exclude_dotfiles?: bool|Param, // If true, any files starting with "." will be excluded from the asset mapper. // Default: true
  289. * server?: bool|Param, // If true, a "dev server" will return the assets from the public directory (true in "debug" mode only by default). // Default: true
  290. * public_prefix?: scalar|Param|null, // The public path where the assets will be written to (and served from when "server" is true). // Default: "/assets/"
  291. * missing_import_mode?: "strict"|"warn"|"ignore"|Param, // 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"
  292. * extensions?: array<string, scalar|Param|null>,
  293. * importmap_path?: scalar|Param|null, // The path of the importmap.php file. // Default: "%kernel.project_dir%/importmap.php"
  294. * importmap_polyfill?: scalar|Param|null, // The importmap name that will be used to load the polyfill. Set to false to disable. // Default: "es-module-shims"
  295. * importmap_script_attributes?: array<string, scalar|Param|null>,
  296. * vendor_dir?: scalar|Param|null, // The directory to store JavaScript vendors. // Default: "%kernel.project_dir%/assets/vendor"
  297. * precompress?: bool|array{ // Precompress assets with Brotli, Zstandard and gzip.
  298. * enabled?: bool|Param, // Default: false
  299. * formats?: list<scalar|Param|null>,
  300. * extensions?: list<scalar|Param|null>,
  301. * },
  302. * },
  303. * translator?: bool|array{ // Translator configuration
  304. * enabled?: bool|Param, // Default: false
  305. * fallbacks?: Param|string|list<scalar|Param|null>,
  306. * logging?: bool|Param, // Default: false
  307. * formatter?: scalar|Param|null, // Default: "translator.formatter.default"
  308. * cache_dir?: scalar|Param|null, // Default: "%kernel.cache_dir%/translations"
  309. * default_path?: scalar|Param|null, // The default path used to load translations. // Default: "%kernel.project_dir%/translations"
  310. * paths?: list<scalar|Param|null>,
  311. * pseudo_localization?: bool|array{
  312. * enabled?: bool|Param, // Default: false
  313. * accents?: bool|Param, // Default: true
  314. * expansion_factor?: float|Param, // Default: 1.0
  315. * brackets?: bool|Param, // Default: true
  316. * parse_html?: bool|Param, // Default: false
  317. * localizable_html_attributes?: list<scalar|Param|null>,
  318. * },
  319. * providers?: array<string, array{ // Default: []
  320. * dsn?: scalar|Param|null,
  321. * domains?: list<scalar|Param|null>,
  322. * locales?: list<scalar|Param|null>,
  323. * }>,
  324. * globals?: array<string, Param|string|array{ // Default: []
  325. * value?: mixed,
  326. * message?: string|Param,
  327. * parameters?: array<string, scalar|Param|null>,
  328. * domain?: string|Param,
  329. * }>,
  330. * },
  331. * validation?: bool|array{ // Validation configuration
  332. * enabled?: bool|Param, // Default: true
  333. * enable_attributes?: bool|Param, // Default: true
  334. * static_method?: Param|string|list<scalar|Param|null>,
  335. * translation_domain?: scalar|Param|null, // Default: "validators"
  336. * email_validation_mode?: "html5"|"html5-allow-no-tld"|"strict"|Param, // Default: "html5"
  337. * mapping?: array{
  338. * paths?: list<scalar|Param|null>,
  339. * },
  340. * not_compromised_password?: bool|array{
  341. * enabled?: bool|Param, // When disabled, compromised passwords will be accepted as valid. // Default: true
  342. * endpoint?: scalar|Param|null, // API endpoint for the NotCompromisedPassword Validator. // Default: null
  343. * },
  344. * disable_translation?: bool|Param, // Default: false
  345. * property_metadata_existence_check?: bool|Param, // When enabled, validateProperty() and validatePropertyValue() throw an exception if no metadata is found for the given property. // Default: false
  346. * auto_mapping?: array<string, array{ // Default: []
  347. * services?: list<scalar|Param|null>,
  348. * }>,
  349. * },
  350. * serializer?: bool|array{ // Serializer configuration
  351. * enabled?: bool|Param, // Default: true
  352. * enable_attributes?: bool|Param, // Default: true
  353. * name_converter?: scalar|Param|null,
  354. * circular_reference_handler?: scalar|Param|null,
  355. * max_depth_handler?: scalar|Param|null,
  356. * mapping?: array{
  357. * paths?: list<scalar|Param|null>,
  358. * },
  359. * default_context?: array<string, mixed>,
  360. * named_serializers?: array<string, array{ // Default: []
  361. * name_converter?: scalar|Param|null,
  362. * default_context?: array<string, mixed>,
  363. * include_built_in_normalizers?: bool|Param, // Whether to include the built-in normalizers // Default: true
  364. * include_built_in_encoders?: bool|Param, // Whether to include the built-in encoders // Default: true
  365. * }>,
  366. * },
  367. * property_access?: bool|array{ // Property access configuration
  368. * enabled?: bool|Param, // Default: true
  369. * magic_call?: bool|Param, // Default: false
  370. * magic_get?: bool|Param, // Default: true
  371. * magic_set?: bool|Param, // Default: true
  372. * throw_exception_on_invalid_index?: bool|Param, // Default: false
  373. * throw_exception_on_invalid_property_path?: bool|Param, // Default: true
  374. * },
  375. * type_info?: bool|array{ // Type info configuration
  376. * enabled?: bool|Param, // Default: true
  377. * aliases?: array<string, scalar|Param|null>,
  378. * },
  379. * property_info?: bool|array{ // Property info configuration
  380. * enabled?: bool|Param, // Default: true
  381. * with_constructor_extractor?: bool|Param, // Registers the constructor extractor. // Default: true
  382. * },
  383. * cache?: array{ // Cache configuration
  384. * prefix_seed?: scalar|Param|null, // Used to namespace cache keys when using several apps with the same shared backend. // Default: "_%kernel.project_dir%.%kernel.container_class%"
  385. * app?: scalar|Param|null, // App related cache pools configuration. // Default: "cache.adapter.filesystem"
  386. * system?: scalar|Param|null, // System related cache pools configuration. // Default: "cache.adapter.system"
  387. * directory?: scalar|Param|null, // Default: "%kernel.share_dir%/pools/app"
  388. * default_psr6_provider?: scalar|Param|null,
  389. * default_redis_provider?: scalar|Param|null, // Default: "redis://localhost"
  390. * default_valkey_provider?: scalar|Param|null, // Default: "valkey://localhost"
  391. * default_memcached_provider?: scalar|Param|null, // Default: "memcached://localhost"
  392. * default_doctrine_dbal_provider?: scalar|Param|null, // Default: "database_connection"
  393. * default_pdo_provider?: scalar|Param|null, // Default: null
  394. * pools?: array<string, array{ // Default: []
  395. * adapters?: Param|string|list<scalar|Param|null>,
  396. * tags?: scalar|Param|null, // Default: null
  397. * public?: bool|Param, // Default: false
  398. * default_lifetime?: scalar|Param|null, // Default lifetime of the pool.
  399. * provider?: scalar|Param|null, // Overwrite the setting from the default provider for this adapter.
  400. * early_expiration_message_bus?: scalar|Param|null,
  401. * clearer?: scalar|Param|null,
  402. * marshaller?: scalar|Param|null, // The marshaller service to use for this pool.
  403. * }>,
  404. * },
  405. * php_errors?: array{ // PHP errors handling configuration
  406. * log?: mixed, // Use the application logger instead of the PHP logger for logging PHP errors. // Default: true
  407. * throw?: bool|Param, // Throw PHP errors as \ErrorException instances. // Default: true
  408. * },
  409. * exceptions?: array<string, array{ // Default: []
  410. * log_level?: scalar|Param|null, // The level of log message. Null to let Symfony decide. // Default: null
  411. * status_code?: scalar|Param|null, // The status code of the response. Null or 0 to let Symfony decide. // Default: null
  412. * log_channel?: scalar|Param|null, // The channel of log message. Null to let Symfony decide. // Default: null
  413. * }>,
  414. * web_link?: bool|array{ // Web links configuration
  415. * enabled?: bool|Param, // Default: true
  416. * },
  417. * lock?: Param|bool|string|array{ // Lock configuration
  418. * enabled?: bool|Param, // Default: false
  419. * resources?: Param|string|array<string, Param|string|list<scalar|Param|null>>,
  420. * },
  421. * semaphore?: Param|bool|string|array{ // Semaphore configuration
  422. * enabled?: bool|Param, // Default: false
  423. * resources?: Param|string|array<string, scalar|Param|null>,
  424. * },
  425. * messenger?: bool|array{ // Messenger configuration
  426. * enabled?: bool|Param, // Default: false
  427. * routing?: array<string, Param|string|list<scalar|Param|null>>,
  428. * serializer?: array{
  429. * default_serializer?: scalar|Param|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|Param|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, Param|string|array{ // Default: []
  436. * dsn?: scalar|Param|null,
  437. * serializer?: scalar|Param|null, // Service id of a custom serializer to use. // Default: null
  438. * options?: array<string, mixed>,
  439. * failure_transport?: scalar|Param|null, // Transport name to send failed messages to (after all retries have failed). // Default: null
  440. * retry_strategy?: Param|string|array{
  441. * service?: scalar|Param|null, // Service id to override the retry strategy entirely. // Default: null
  442. * max_retries?: int|Param, // Default: 3
  443. * delay?: int|Param, // Time in ms to delay (or the initial value when multiplier is used). // Default: 1000
  444. * multiplier?: float|Param, // If greater than 1, delay will grow exponentially for each retry: this delay = (delay * (multiple ^ retries)). // Default: 2
  445. * max_delay?: int|Param, // Max time in ms that a retry should ever be delayed (0 = infinite). // Default: 0
  446. * jitter?: float|Param, // Randomness to apply to the delay (between 0 and 1). // Default: 0.1
  447. * },
  448. * rate_limiter?: scalar|Param|null, // Rate limiter name to use when processing messages. // Default: null
  449. * }>,
  450. * failure_transport?: scalar|Param|null, // Transport name to send failed messages to (after all retries have failed). // Default: null
  451. * stop_worker_on_signals?: Param|int|string|list<scalar|Param|null>,
  452. * default_bus?: scalar|Param|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?: Param|bool|string|array{
  455. * enabled?: bool|Param, // Default: true
  456. * allow_no_handlers?: bool|Param, // Default: false
  457. * allow_no_senders?: bool|Param, // Default: true
  458. * },
  459. * middleware?: Param|string|list<Param|string|array{ // Default: []
  460. * id?: scalar|Param|null,
  461. * arguments?: list<mixed>,
  462. * }>,
  463. * }>,
  464. * },
  465. * scheduler?: bool|array{ // Scheduler configuration
  466. * enabled?: bool|Param, // Default: false
  467. * },
  468. * disallow_search_engine_index?: bool|Param, // Enabled by default when debug is enabled. // Default: true
  469. * http_client?: bool|array{ // HTTP Client configuration
  470. * enabled?: bool|Param, // Default: false
  471. * max_host_connections?: int|Param, // The maximum number of connections to a single host.
  472. * default_options?: array{
  473. * headers?: array<string, mixed>,
  474. * vars?: array<string, mixed>,
  475. * max_redirects?: int|Param, // The maximum number of redirects to follow.
  476. * http_version?: scalar|Param|null, // The default HTTP version, typically 1.1 or 2.0, leave to null for the best version.
  477. * resolve?: array<string, scalar|Param|null>,
  478. * proxy?: scalar|Param|null, // The URL of the proxy to pass requests through or null for automatic detection.
  479. * no_proxy?: scalar|Param|null, // A comma separated list of hosts that do not require a proxy to be reached.
  480. * timeout?: float|Param, // The idle timeout, defaults to the "default_socket_timeout" ini parameter.
  481. * max_duration?: float|Param, // The maximum execution time for the request+response as a whole.
  482. * bindto?: scalar|Param|null, // A network interface name, IP address, a host name or a UNIX socket to bind to.
  483. * verify_peer?: bool|Param, // Indicates if the peer should be verified in a TLS context.
  484. * verify_host?: bool|Param, // Indicates if the host should exist as a certificate common name.
  485. * cafile?: scalar|Param|null, // A certificate authority file.
  486. * capath?: scalar|Param|null, // A directory that contains multiple certificate authority files.
  487. * local_cert?: scalar|Param|null, // A PEM formatted certificate file.
  488. * local_pk?: scalar|Param|null, // A private key file.
  489. * passphrase?: scalar|Param|null, // The passphrase used to encrypt the "local_pk" file.
  490. * ciphers?: scalar|Param|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|Param|null, // The minimum version of TLS to accept; must be one of STREAM_CRYPTO_METHOD_TLSv*_CLIENT constants.
  497. * extra?: array<string, mixed>,
  498. * rate_limiter?: scalar|Param|null, // Rate limiter name to use for throttling requests. // Default: null
  499. * caching?: bool|array{ // Caching configuration.
  500. * enabled?: bool|Param, // Default: false
  501. * cache_pool?: string|Param, // The taggable cache pool to use for storing the responses. // Default: "cache.http_client"
  502. * shared?: bool|Param, // Indicates whether the cache is shared (public) or private. // Default: true
  503. * max_ttl?: int|Param, // The maximum TTL (in seconds) allowed for cached responses. // Default: 86400
  504. * },
  505. * retry_failed?: bool|array{
  506. * enabled?: bool|Param, // Default: false
  507. * retry_strategy?: scalar|Param|null, // service id to override the retry strategy. // Default: null
  508. * http_codes?: Param|int|string|array<string, array{ // Default: []
  509. * code?: int|Param,
  510. * methods?: Param|string|list<string|Param>,
  511. * }>,
  512. * max_retries?: int|Param, // Default: 3
  513. * delay?: int|Param, // Time in ms to delay (or the initial value when multiplier is used). // Default: 1000
  514. * multiplier?: float|Param, // If greater than 1, delay will grow exponentially for each retry: delay * (multiple ^ retries). // Default: 2
  515. * max_delay?: int|Param, // Max time in ms that a retry should ever be delayed (0 = infinite). // Default: 0
  516. * jitter?: float|Param, // Randomness in percent (between 0 and 1) to apply to the delay. // Default: 0.1
  517. * },
  518. * },
  519. * mock_response_factory?: scalar|Param|null, // `true` to always return empty 200 responses, or the id of the service to use to generate mock responses - which should be either an invokable or an iterable.
  520. * scoped_clients?: array<string, Param|string|array{ // Default: []
  521. * scope?: scalar|Param|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|Param|null, // The URI to resolve relative URLs, following rules in RFC 3985, section 2.
  523. * auth_basic?: scalar|Param|null, // An HTTP Basic authentication "username:password".
  524. * auth_bearer?: scalar|Param|null, // A token enabling HTTP Bearer authorization.
  525. * auth_ntlm?: scalar|Param|null, // A "username:password" pair to use Microsoft NTLM authentication (requires the cURL extension).
  526. * query?: array<string, scalar|Param|null>,
  527. * headers?: array<string, mixed>,
  528. * max_redirects?: int|Param, // The maximum number of redirects to follow.
  529. * http_version?: scalar|Param|null, // The default HTTP version, typically 1.1 or 2.0, leave to null for the best version.
  530. * resolve?: array<string, scalar|Param|null>,
  531. * proxy?: scalar|Param|null, // The URL of the proxy to pass requests through or null for automatic detection.
  532. * no_proxy?: scalar|Param|null, // A comma separated list of hosts that do not require a proxy to be reached.
  533. * timeout?: float|Param, // The idle timeout, defaults to the "default_socket_timeout" ini parameter.
  534. * max_duration?: float|Param, // The maximum execution time for the request+response as a whole.
  535. * bindto?: scalar|Param|null, // A network interface name, IP address, a host name or a UNIX socket to bind to.
  536. * verify_peer?: bool|Param, // Indicates if the peer should be verified in a TLS context.
  537. * verify_host?: bool|Param, // Indicates if the host should exist as a certificate common name.
  538. * cafile?: scalar|Param|null, // A certificate authority file.
  539. * capath?: scalar|Param|null, // A directory that contains multiple certificate authority files.
  540. * local_cert?: scalar|Param|null, // A PEM formatted certificate file.
  541. * local_pk?: scalar|Param|null, // A private key file.
  542. * passphrase?: scalar|Param|null, // The passphrase used to encrypt the "local_pk" file.
  543. * ciphers?: scalar|Param|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|Param|null, // The minimum version of TLS to accept; must be one of STREAM_CRYPTO_METHOD_TLSv*_CLIENT constants.
  550. * mock_response_factory?: scalar|Param|null, // `true` to always return empty 200 responses, `false` to disable mocking, or the id of the service to use to generate mock responses (invokable or iterable).
  551. * extra?: array<string, mixed>,
  552. * rate_limiter?: scalar|Param|null, // Rate limiter name to use for throttling requests. // Default: null
  553. * caching?: bool|array{ // Caching configuration.
  554. * enabled?: bool|Param, // Default: false
  555. * cache_pool?: string|Param, // The taggable cache pool to use for storing the responses. // Default: "cache.http_client"
  556. * shared?: bool|Param, // Indicates whether the cache is shared (public) or private. // Default: true
  557. * max_ttl?: int|Param, // The maximum TTL (in seconds) allowed for cached responses. // Default: 86400
  558. * },
  559. * retry_failed?: bool|array{
  560. * enabled?: bool|Param, // Default: false
  561. * retry_strategy?: scalar|Param|null, // service id to override the retry strategy. // Default: null
  562. * http_codes?: Param|int|string|array<string, array{ // Default: []
  563. * code?: int|Param,
  564. * methods?: Param|string|list<string|Param>,
  565. * }>,
  566. * max_retries?: int|Param, // Default: 3
  567. * delay?: int|Param, // Time in ms to delay (or the initial value when multiplier is used). // Default: 1000
  568. * multiplier?: float|Param, // If greater than 1, delay will grow exponentially for each retry: delay * (multiple ^ retries). // Default: 2
  569. * max_delay?: int|Param, // Max time in ms that a retry should ever be delayed (0 = infinite). // Default: 0
  570. * jitter?: float|Param, // Randomness in percent (between 0 and 1) to apply to the delay. // Default: 0.1
  571. * },
  572. * }>,
  573. * },
  574. * mailer?: bool|array{ // Mailer configuration
  575. * enabled?: bool|Param, // Default: true
  576. * message_bus?: scalar|Param|null, // The message bus to use. Defaults to the default bus if the Messenger component is installed. // Default: null
  577. * dsn?: scalar|Param|null, // Default: null
  578. * transports?: array<string, scalar|Param|null>,
  579. * envelope?: array{ // Mailer Envelope configuration
  580. * sender?: scalar|Param|null,
  581. * recipients?: Param|string|list<scalar|Param|null>,
  582. * allowed_recipients?: Param|string|list<scalar|Param|null>,
  583. * },
  584. * headers?: array<string, Param|string|array{ // Default: []
  585. * value?: mixed,
  586. * }>,
  587. * dkim_signer?: bool|array{ // DKIM signer configuration
  588. * enabled?: bool|Param, // Default: false
  589. * key?: scalar|Param|null, // Key content, or path to key (in PEM format with the `file://` prefix) // Default: ""
  590. * domain?: scalar|Param|null, // Default: ""
  591. * select?: scalar|Param|null, // Default: ""
  592. * passphrase?: scalar|Param|null, // The private key passphrase // Default: ""
  593. * options?: array<string, mixed>,
  594. * },
  595. * smime_signer?: bool|array{ // S/MIME signer configuration
  596. * enabled?: bool|Param, // Default: false
  597. * key?: scalar|Param|null, // Path to key (in PEM format) // Default: ""
  598. * certificate?: scalar|Param|null, // Path to certificate (in PEM format without the `file://` prefix) // Default: ""
  599. * passphrase?: scalar|Param|null, // The private key passphrase // Default: null
  600. * extra_certificates?: scalar|Param|null, // Default: null
  601. * sign_options?: int|Param, // Default: null
  602. * },
  603. * smime_encrypter?: bool|array{ // S/MIME encrypter configuration
  604. * enabled?: bool|Param, // Default: false
  605. * repository?: scalar|Param|null, // S/MIME certificate repository service. This service shall implement the `Symfony\Component\Mailer\EventListener\SmimeCertificateRepositoryInterface`. // Default: ""
  606. * cipher?: int|Param, // A set of algorithms used to encrypt the message // Default: null
  607. * },
  608. * },
  609. * secrets?: bool|array{
  610. * enabled?: bool|Param, // Default: true
  611. * vault_directory?: scalar|Param|null, // Default: "%kernel.project_dir%/config/secrets/%kernel.runtime_environment%"
  612. * local_dotenv_file?: scalar|Param|null, // Default: "%kernel.project_dir%/.env.%kernel.environment%.local"
  613. * decryption_env_var?: scalar|Param|null, // Default: "base64:default::SYMFONY_DECRYPTION_SECRET"
  614. * },
  615. * notifier?: bool|array{ // Notifier configuration
  616. * enabled?: bool|Param, // Default: false
  617. * message_bus?: scalar|Param|null, // The message bus to use. Defaults to the default bus if the Messenger component is installed. // Default: null
  618. * chatter_transports?: array<string, scalar|Param|null>,
  619. * texter_transports?: array<string, scalar|Param|null>,
  620. * notification_on_failed_messages?: bool|Param, // Default: false
  621. * channel_policy?: array<string, Param|string|list<scalar|Param|null>>,
  622. * admin_recipients?: list<array{ // Default: []
  623. * email?: scalar|Param|null,
  624. * phone?: scalar|Param|null, // Default: ""
  625. * }>,
  626. * },
  627. * rate_limiter?: bool|array{ // Rate limiter configuration
  628. * enabled?: bool|Param, // Default: false
  629. * limiters?: array<string, array{ // Default: []
  630. * lock_factory?: scalar|Param|null, // The service ID of the lock factory used by this limiter (or null to disable locking). // Default: "auto"
  631. * cache_pool?: scalar|Param|null, // The cache pool to use for storing the current limiter state. // Default: "cache.rate_limiter"
  632. * storage_service?: scalar|Param|null, // The service ID of a custom storage implementation, this precedes any configured "cache_pool". // Default: null
  633. * policy?: "fixed_window"|"token_bucket"|"sliding_window"|"compound"|"no_limit"|Param, // The algorithm to be used by this limiter.
  634. * limiters?: Param|string|list<scalar|Param|null>,
  635. * limit?: int|Param, // The maximum allowed hits in a fixed interval or burst.
  636. * interval?: scalar|Param|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).
  637. * rate?: array{ // Configures the fill rate if "policy" is set to "token_bucket".
  638. * interval?: scalar|Param|null, // Configures the rate interval. The value must be a number followed by "second", "minute", "hour", "day", "week" or "month" (or their plural equivalent).
  639. * amount?: int|Param, // Amount of tokens to add each interval. // Default: 1
  640. * },
  641. * anchor_at?: scalar|Param|null, // Aligns the "fixed_window" policy to a calendar (e.g. "2024-01-05 00:00:00 UTC" combined with `interval: 1 month` resets the counter on the 5th of each month). UTC if not specified. // Default: null
  642. * }>,
  643. * },
  644. * uid?: bool|array{ // Uid configuration
  645. * enabled?: bool|Param, // Default: false
  646. * default_uuid_version?: 7|6|4|1|Param, // Default: 7
  647. * name_based_uuid_version?: 5|3|Param, // Default: 5
  648. * name_based_uuid_namespace?: scalar|Param|null,
  649. * time_based_uuid_version?: 7|6|1|Param, // Default: 7
  650. * time_based_uuid_node?: scalar|Param|null,
  651. * uuid47_secret?: scalar|Param|null, // A high-entropy secret used by the "uuid47_transformer" service. Defaults to "kernel.secret". // Default: null
  652. * },
  653. * html_sanitizer?: bool|array{ // HtmlSanitizer configuration
  654. * enabled?: bool|Param, // Default: false
  655. * sanitizers?: array<string, array{ // Default: []
  656. * default_action?: "drop"|"block"|"allow"|Param, // Defines how the sanitizer must behave by default.
  657. * allow_safe_elements?: bool|Param, // Allows "safe" elements and attributes. // Default: false
  658. * allow_static_elements?: bool|Param, // Allows all static elements and attributes from the W3C Sanitizer API standard. // Default: false
  659. * allow_elements?: array<string, mixed>,
  660. * block_elements?: Param|string|list<string|Param>,
  661. * drop_elements?: Param|string|list<string|Param>,
  662. * allow_attributes?: array<string, mixed>,
  663. * drop_attributes?: array<string, mixed>,
  664. * force_attributes?: array<string, array<string, string|Param>>,
  665. * force_https_urls?: bool|Param, // Transforms URLs using the HTTP scheme to use the HTTPS scheme instead. // Default: false
  666. * allowed_link_schemes?: Param|string|list<string|Param>,
  667. * allowed_link_hosts?: Param|null|string|list<string|Param>,
  668. * allow_relative_links?: bool|Param, // Allows relative URLs to be used in links href attributes. // Default: false
  669. * allowed_media_schemes?: Param|string|list<string|Param>,
  670. * allowed_media_hosts?: Param|null|string|list<string|Param>,
  671. * allow_relative_medias?: bool|Param, // Allows relative URLs to be used in media source attributes (img, audio, video, ...). // Default: false
  672. * with_attribute_sanitizers?: Param|string|list<string|Param>,
  673. * without_attribute_sanitizers?: Param|string|list<string|Param>,
  674. * max_input_length?: int|Param, // The maximum length allowed for the sanitized input. // Default: 0
  675. * }>,
  676. * },
  677. * webhook?: bool|array{ // Webhook configuration
  678. * enabled?: bool|Param, // Default: false
  679. * message_bus?: scalar|Param|null, // The message bus to use. // Default: "messenger.default_bus"
  680. * event_header_name?: scalar|Param|null, // Default: "Webhook-Event"
  681. * id_header_name?: scalar|Param|null, // Default: "Webhook-Id"
  682. * signature_header_name?: scalar|Param|null, // Default: "Webhook-Signature"
  683. * signing_algorithm?: scalar|Param|null, // Default: "sha256"
  684. * routing?: array<string, array{ // Default: []
  685. * service?: scalar|Param|null,
  686. * secret?: scalar|Param|null, // The secret used to verify incoming request signatures. It must be set in production: with an empty value, depending on the parser, requests from any sender are accepted or every request is rejected. // Default: ""
  687. * }>,
  688. * },
  689. * remote_event?: bool|array{ // RemoteEvent configuration
  690. * enabled?: bool|Param, // Default: false
  691. * },
  692. * json_streamer?: bool|array{ // JSON streamer configuration
  693. * enabled?: bool|Param, // Default: false
  694. * default_options?: array{
  695. * include_null_properties?: bool|Param, // Encode the properties with null value // Default: false
  696. * ...<string, mixed>
  697. * },
  698. * },
  699. * }
  700. * @psalm-type TwigConfig = array{
  701. * form_themes?: list<scalar|Param|null>,
  702. * globals?: array<string, array{ // Default: []
  703. * id?: scalar|Param|null,
  704. * type?: scalar|Param|null,
  705. * value?: mixed,
  706. * ...<string, mixed>
  707. * }>,
  708. * autoescape_service?: scalar|Param|null, // Default: null
  709. * autoescape_service_method?: scalar|Param|null, // Default: null
  710. * cache?: scalar|Param|null, // Default: true
  711. * charset?: scalar|Param|null, // Default: "%kernel.charset%"
  712. * debug?: bool|Param, // Default: "%kernel.debug%"
  713. * strict_variables?: bool|Param, // Default: "%kernel.debug%"
  714. * auto_reload?: scalar|Param|null,
  715. * optimizations?: int|Param,
  716. * default_path?: scalar|Param|null, // The default path used to load templates. // Default: "%kernel.project_dir%/templates"
  717. * file_name_pattern?: Param|string|list<scalar|Param|null>,
  718. * paths?: array<string, mixed>,
  719. * date?: array{ // The default format options used by the date filter.
  720. * format?: scalar|Param|null, // Default: "F j, Y H:i"
  721. * interval_format?: scalar|Param|null, // Default: "%d days"
  722. * timezone?: scalar|Param|null, // The timezone used when formatting dates, when set to null, the timezone returned by date_default_timezone_get() is used. // Default: null
  723. * },
  724. * number_format?: array{ // The default format options for the number_format filter.
  725. * decimals?: int|Param, // Default: 0
  726. * decimal_point?: scalar|Param|null, // Default: "."
  727. * thousands_separator?: scalar|Param|null, // Default: ","
  728. * },
  729. * mailer?: array{
  730. * html_to_text_converter?: scalar|Param|null, // A service implementing the "Symfony\Component\Mime\HtmlToTextConverter\HtmlToTextConverterInterface". // Default: null
  731. * },
  732. * }
  733. * @psalm-type SecurityConfig = array{
  734. * access_denied_url?: scalar|Param|null, // Default: null
  735. * session_fixation_strategy?: "none"|"migrate"|"invalidate"|Param, // Default: "migrate"
  736. * expose_security_errors?: \Symfony\Component\Security\Http\Authentication\ExposeSecurityLevel::None|\Symfony\Component\Security\Http\Authentication\ExposeSecurityLevel::AccountStatus|\Symfony\Component\Security\Http\Authentication\ExposeSecurityLevel::All|Param, // Default: "none"
  737. * erase_credentials?: bool|Param, // Deprecated: Setting the "security.erase_credentials.erase_credentials" configuration option is deprecated. It will be removed in Symfony 9.0, as the "eraseCredentials()" method was removed in Symfony 8.0. // Default: true
  738. * access_decision_manager?: array{
  739. * strategy?: "affirmative"|"consensus"|"unanimous"|"priority"|Param,
  740. * service?: scalar|Param|null,
  741. * strategy_service?: scalar|Param|null,
  742. * allow_if_all_abstain?: bool|Param, // Default: false
  743. * allow_if_equal_granted_denied?: bool|Param, // Default: true
  744. * },
  745. * password_hashers?: array<string, Param|string|array{ // Default: []
  746. * algorithm?: scalar|Param|null,
  747. * migrate_from?: Param|string|list<scalar|Param|null>,
  748. * hash_algorithm?: scalar|Param|null, // Name of hashing algorithm for PBKDF2 (i.e. sha256, sha512, etc..) See hash_algos() for a list of supported algorithms. // Default: "sha512"
  749. * key_length?: scalar|Param|null, // Default: 40
  750. * ignore_case?: bool|Param, // Default: false
  751. * encode_as_base64?: bool|Param, // Default: true
  752. * iterations?: scalar|Param|null, // Default: 5000
  753. * cost?: int|Param, // Default: null
  754. * memory_cost?: scalar|Param|null, // Default: null
  755. * time_cost?: scalar|Param|null, // Default: null
  756. * id?: scalar|Param|null,
  757. * }>,
  758. * providers?: array<string, array{ // Default: []
  759. * id?: scalar|Param|null,
  760. * chain?: array{
  761. * providers?: Param|string|list<scalar|Param|null>,
  762. * },
  763. * memory?: array{
  764. * users?: array<string, array{ // Default: []
  765. * password?: scalar|Param|null, // Default: null
  766. * roles?: Param|string|list<scalar|Param|null>,
  767. * }>,
  768. * },
  769. * ldap?: array{
  770. * service?: scalar|Param|null,
  771. * base_dn?: scalar|Param|null,
  772. * search_dn?: scalar|Param|null, // Default: null
  773. * search_password?: scalar|Param|null, // Default: null
  774. * extra_fields?: list<scalar|Param|null>,
  775. * default_roles?: Param|string|list<scalar|Param|null>,
  776. * role_fetcher?: scalar|Param|null, // Default: null
  777. * uid_key?: scalar|Param|null, // Default: "sAMAccountName"
  778. * filter?: scalar|Param|null, // Default: "({uid_key}={user_identifier})"
  779. * password_attribute?: scalar|Param|null, // Default: null
  780. * },
  781. * entity?: array{
  782. * class?: scalar|Param|null, // The full entity class name of your user class.
  783. * property?: scalar|Param|null, // Default: null
  784. * manager_name?: scalar|Param|null, // Default: null
  785. * },
  786. * }>,
  787. * firewalls?: array<string, array{ // Default: []
  788. * pattern?: scalar|Param|null,
  789. * host?: scalar|Param|null,
  790. * methods?: Param|string|list<scalar|Param|null>,
  791. * security?: bool|Param, // Default: true
  792. * user_checker?: scalar|Param|null, // The UserChecker to use when authenticating users in this firewall. // Default: "security.user_checker"
  793. * request_matcher?: scalar|Param|null,
  794. * access_denied_url?: scalar|Param|null,
  795. * access_denied_handler?: scalar|Param|null,
  796. * entry_point?: scalar|Param|null, // An enabled authenticator name or a service id that implements "Symfony\Component\Security\Http\EntryPoint\AuthenticationEntryPointInterface".
  797. * provider?: scalar|Param|null,
  798. * stateless?: bool|Param, // Default: false
  799. * lazy?: bool|Param, // Default: false
  800. * context?: scalar|Param|null,
  801. * logout?: array{
  802. * enable_csrf?: bool|Param|null, // Default: null
  803. * csrf_token_id?: scalar|Param|null, // Default: "logout"
  804. * csrf_parameter?: scalar|Param|null, // Default: "_csrf_token"
  805. * csrf_token_manager?: scalar|Param|null,
  806. * path?: scalar|Param|null, // Default: "/logout"
  807. * target?: scalar|Param|null, // Default: "/"
  808. * invalidate_session?: bool|Param, // Default: true
  809. * clear_site_data?: Param|string|list<"*"|"cache"|"cookies"|"storage"|"clientHints"|"executionContexts"|"prefetchCache"|"prerenderCache"|Param>,
  810. * delete_cookies?: Param|string|array<string, array{ // Default: []
  811. * path?: scalar|Param|null, // Default: null
  812. * domain?: scalar|Param|null, // Default: null
  813. * secure?: scalar|Param|null, // Default: false
  814. * samesite?: scalar|Param|null, // Default: null
  815. * partitioned?: scalar|Param|null, // Default: false
  816. * }>,
  817. * },
  818. * switch_user?: array{
  819. * provider?: scalar|Param|null,
  820. * parameter?: scalar|Param|null, // Default: "_switch_user"
  821. * role?: scalar|Param|null, // Default: "ROLE_ALLOWED_TO_SWITCH"
  822. * target_route?: scalar|Param|null, // Default: null
  823. * },
  824. * required_badges?: list<scalar|Param|null>,
  825. * custom_authenticators?: list<scalar|Param|null>,
  826. * login_throttling?: array{
  827. * limiter?: scalar|Param|null, // A service id implementing "Symfony\Component\HttpFoundation\RateLimiter\RequestRateLimiterInterface".
  828. * max_attempts?: int|Param, // Default: 5
  829. * interval?: scalar|Param|null, // Default: "1 minute"
  830. * lock_factory?: scalar|Param|null, // The service ID of the lock factory used by the login rate limiter ("auto" to use the default one when the Lock component is configured, or null to disable locking). // Default: "auto"
  831. * cache_pool?: string|Param, // The cache pool to use for storing the limiter state // Default: "cache.rate_limiter"
  832. * storage_service?: string|Param, // The service ID of a custom storage implementation, this precedes any configured "cache_pool" // Default: null
  833. * },
  834. * x509?: array{
  835. * provider?: scalar|Param|null,
  836. * user?: scalar|Param|null, // Default: "SSL_CLIENT_S_DN_Email"
  837. * credentials?: scalar|Param|null, // Default: "SSL_CLIENT_S_DN"
  838. * user_identifier?: scalar|Param|null, // Default: "emailAddress"
  839. * },
  840. * remote_user?: array{
  841. * provider?: scalar|Param|null,
  842. * user?: scalar|Param|null, // Default: "REMOTE_USER"
  843. * },
  844. * login_link?: array{
  845. * check_route?: scalar|Param|null, // Route that will validate the login link - e.g. "app_login_link_verify".
  846. * check_post_only?: scalar|Param|null, // If true, only HTTP POST requests to "check_route" will be handled by the authenticator. // Default: false
  847. * signature_properties?: list<scalar|Param|null>,
  848. * lifetime?: int|Param, // The lifetime of the login link in seconds. // Default: 600
  849. * max_uses?: int|Param, // Max number of times a login link can be used - null means unlimited within lifetime. // Default: null
  850. * used_link_cache?: scalar|Param|null, // Cache service id used to expired links of max_uses is set.
  851. * success_handler?: scalar|Param|null, // A service id that implements Symfony\Component\Security\Http\Authentication\AuthenticationSuccessHandlerInterface.
  852. * failure_handler?: scalar|Param|null, // A service id that implements Symfony\Component\Security\Http\Authentication\AuthenticationFailureHandlerInterface.
  853. * provider?: scalar|Param|null, // The user provider to load users from.
  854. * secret?: scalar|Param|null, // Default: "%kernel.secret%"
  855. * always_use_default_target_path?: bool|Param, // Default: false
  856. * default_target_path?: scalar|Param|null, // Default: "/"
  857. * login_path?: scalar|Param|null, // Default: "/login"
  858. * target_path_parameter?: scalar|Param|null, // Default: "_target_path"
  859. * use_referer?: bool|Param, // Default: false
  860. * failure_path?: scalar|Param|null, // Default: null
  861. * failure_forward?: bool|Param, // Default: false
  862. * failure_path_parameter?: scalar|Param|null, // Default: "_failure_path"
  863. * },
  864. * form_login?: array{
  865. * provider?: scalar|Param|null,
  866. * remember_me?: bool|Param, // Default: true
  867. * success_handler?: scalar|Param|null,
  868. * failure_handler?: scalar|Param|null,
  869. * check_path?: scalar|Param|null, // Default: "/login_check"
  870. * use_forward?: bool|Param, // Default: false
  871. * login_path?: scalar|Param|null, // Default: "/login"
  872. * username_parameter?: scalar|Param|null, // Default: "_username"
  873. * password_parameter?: scalar|Param|null, // Default: "_password"
  874. * csrf_parameter?: scalar|Param|null, // Default: "_csrf_token"
  875. * csrf_token_id?: scalar|Param|null, // Default: "authenticate"
  876. * enable_csrf?: bool|Param, // Default: false
  877. * post_only?: bool|Param, // Default: true
  878. * form_only?: bool|Param, // Default: false
  879. * always_use_default_target_path?: bool|Param, // Default: false
  880. * default_target_path?: scalar|Param|null, // Default: "/"
  881. * target_path_parameter?: scalar|Param|null, // Default: "_target_path"
  882. * use_referer?: bool|Param, // Default: false
  883. * failure_path?: scalar|Param|null, // Default: null
  884. * failure_forward?: bool|Param, // Default: false
  885. * failure_path_parameter?: scalar|Param|null, // Default: "_failure_path"
  886. * },
  887. * form_login_ldap?: array{
  888. * provider?: scalar|Param|null,
  889. * remember_me?: bool|Param, // Default: true
  890. * success_handler?: scalar|Param|null,
  891. * failure_handler?: scalar|Param|null,
  892. * check_path?: scalar|Param|null, // Default: "/login_check"
  893. * use_forward?: bool|Param, // Default: false
  894. * login_path?: scalar|Param|null, // Default: "/login"
  895. * username_parameter?: scalar|Param|null, // Default: "_username"
  896. * password_parameter?: scalar|Param|null, // Default: "_password"
  897. * csrf_parameter?: scalar|Param|null, // Default: "_csrf_token"
  898. * csrf_token_id?: scalar|Param|null, // Default: "authenticate"
  899. * enable_csrf?: bool|Param, // Default: false
  900. * post_only?: bool|Param, // Default: true
  901. * form_only?: bool|Param, // Default: false
  902. * always_use_default_target_path?: bool|Param, // Default: false
  903. * default_target_path?: scalar|Param|null, // Default: "/"
  904. * target_path_parameter?: scalar|Param|null, // Default: "_target_path"
  905. * use_referer?: bool|Param, // Default: false
  906. * failure_path?: scalar|Param|null, // Default: null
  907. * failure_forward?: bool|Param, // Default: false
  908. * failure_path_parameter?: scalar|Param|null, // Default: "_failure_path"
  909. * service?: scalar|Param|null, // Default: "ldap"
  910. * dn_string?: scalar|Param|null, // Default: "{user_identifier}"
  911. * query_string?: scalar|Param|null,
  912. * search_dn?: scalar|Param|null, // Default: ""
  913. * search_password?: scalar|Param|null, // Default: ""
  914. * },
  915. * json_login?: array{
  916. * provider?: scalar|Param|null,
  917. * remember_me?: bool|Param, // Default: true
  918. * success_handler?: scalar|Param|null,
  919. * failure_handler?: scalar|Param|null,
  920. * check_path?: scalar|Param|null, // Default: "/login_check"
  921. * use_forward?: bool|Param, // Default: false
  922. * login_path?: scalar|Param|null, // Default: "/login"
  923. * username_path?: scalar|Param|null, // Default: "username"
  924. * password_path?: scalar|Param|null, // Default: "password"
  925. * },
  926. * json_login_ldap?: array{
  927. * provider?: scalar|Param|null,
  928. * remember_me?: bool|Param, // Default: true
  929. * success_handler?: scalar|Param|null,
  930. * failure_handler?: scalar|Param|null,
  931. * check_path?: scalar|Param|null, // Default: "/login_check"
  932. * use_forward?: bool|Param, // Default: false
  933. * login_path?: scalar|Param|null, // Default: "/login"
  934. * username_path?: scalar|Param|null, // Default: "username"
  935. * password_path?: scalar|Param|null, // Default: "password"
  936. * service?: scalar|Param|null, // Default: "ldap"
  937. * dn_string?: scalar|Param|null, // Default: "{user_identifier}"
  938. * query_string?: scalar|Param|null,
  939. * search_dn?: scalar|Param|null, // Default: ""
  940. * search_password?: scalar|Param|null, // Default: ""
  941. * },
  942. * access_token?: array{
  943. * provider?: scalar|Param|null,
  944. * remember_me?: bool|Param, // Default: true
  945. * success_handler?: scalar|Param|null,
  946. * failure_handler?: scalar|Param|null,
  947. * realm?: scalar|Param|null, // Default: null
  948. * token_extractors?: Param|string|list<scalar|Param|null>,
  949. * token_handler?: Param|string|array{
  950. * id?: scalar|Param|null,
  951. * oidc_user_info?: Param|string|array{
  952. * base_uri?: scalar|Param|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). The latter must end with a slash when it has a path, as the discovery path is resolved against it as a relative URL.
  953. * discovery?: array{ // Enable the OIDC discovery.
  954. * cache?: array{
  955. * id?: scalar|Param|null, // Cache service id to use to cache the OIDC discovery configuration.
  956. * },
  957. * },
  958. * claim?: scalar|Param|null, // Claim which contains the user identifier (e.g. sub, email, etc.). // Default: "sub"
  959. * client?: scalar|Param|null, // HttpClient service id to use to call the OIDC server.
  960. * },
  961. * oidc?: array{
  962. * discovery?: array{ // Enable the OIDC discovery.
  963. * base_uri?: Param|string|list<scalar|Param|null>,
  964. * cache?: array{
  965. * id?: scalar|Param|null, // Cache service id to use to cache the OIDC discovery configuration.
  966. * },
  967. * enforce_key_usage_verification?: bool|Param, // When enabled (default), only keys explicitly designated for signature (via "use":"sig" or a "key_ops" entry containing "sign"/"verify") are accepted. When disabled, keys without any usage designation are also accepted; keys explicitly restricted to encryption are still rejected. // Default: true
  968. * },
  969. * claim?: scalar|Param|null, // Claim which contains the user identifier (e.g.: sub, email..). // Default: "sub"
  970. * audience?: scalar|Param|null, // Audience set in the token, for validation purpose.
  971. * issuers?: list<scalar|Param|null>,
  972. * algorithms?: list<scalar|Param|null>,
  973. * keyset?: scalar|Param|null, // JSON-encoded JWKSet used to sign the token (must contain a list of valid public keys).
  974. * encryption?: bool|array{
  975. * enabled?: bool|Param, // Default: false
  976. * enforce?: bool|Param, // When enabled, the token shall be encrypted. // Default: false
  977. * algorithms?: list<scalar|Param|null>,
  978. * keyset?: scalar|Param|null, // JSON-encoded JWKSet used to decrypt the token (must contain a list of valid private keys).
  979. * },
  980. * },
  981. * cas?: array{
  982. * validation_url?: scalar|Param|null, // CAS server validation URL
  983. * prefix?: scalar|Param|null, // CAS prefix // Default: "cas"
  984. * http_client?: scalar|Param|null, // HTTP Client service // Default: null
  985. * },
  986. * oauth2?: scalar|Param|null,
  987. * },
  988. * },
  989. * http_basic?: array{
  990. * provider?: scalar|Param|null,
  991. * realm?: scalar|Param|null, // Default: "Secured Area"
  992. * },
  993. * http_basic_ldap?: array{
  994. * provider?: scalar|Param|null,
  995. * realm?: scalar|Param|null, // Default: "Secured Area"
  996. * service?: scalar|Param|null, // Default: "ldap"
  997. * dn_string?: scalar|Param|null, // Default: "{user_identifier}"
  998. * query_string?: scalar|Param|null,
  999. * search_dn?: scalar|Param|null, // Default: ""
  1000. * search_password?: scalar|Param|null, // Default: ""
  1001. * },
  1002. * remember_me?: array{
  1003. * secret?: scalar|Param|null, // Default: "%kernel.secret%"
  1004. * service?: scalar|Param|null,
  1005. * user_providers?: Param|string|list<scalar|Param|null>,
  1006. * catch_exceptions?: bool|Param, // Default: true
  1007. * signature_properties?: list<scalar|Param|null>,
  1008. * token_provider?: Param|string|array{
  1009. * service?: scalar|Param|null, // The service ID of a custom remember-me token provider.
  1010. * doctrine?: bool|array{
  1011. * enabled?: bool|Param, // Default: false
  1012. * connection?: scalar|Param|null, // Default: null
  1013. * },
  1014. * },
  1015. * token_verifier?: scalar|Param|null, // The service ID of a custom rememberme token verifier.
  1016. * name?: scalar|Param|null, // Default: "REMEMBERME"
  1017. * lifetime?: int|Param, // Default: 31536000
  1018. * path?: scalar|Param|null, // Default: "/"
  1019. * domain?: scalar|Param|null, // Default: null
  1020. * secure?: true|false|"auto"|Param, // Defaults to the value of "framework.session.cookie_secure", or to "auto".
  1021. * httponly?: bool|Param, // Default: true
  1022. * samesite?: null|"lax"|"strict"|"none"|Param, // Defaults to the value of "framework.session.cookie_samesite", or to "lax".
  1023. * always_remember_me?: bool|Param, // Default: false
  1024. * remember_me_parameter?: scalar|Param|null, // Default: "_remember_me"
  1025. * },
  1026. * }>,
  1027. * access_control?: list<array{ // Default: []
  1028. * request_matcher?: scalar|Param|null, // Default: null
  1029. * requires_channel?: scalar|Param|null, // Default: null
  1030. * path?: scalar|Param|null, // Use the urldecoded format. // Default: null
  1031. * host?: scalar|Param|null, // Default: null
  1032. * port?: int|Param, // Default: null
  1033. * ips?: Param|string|list<scalar|Param|null>,
  1034. * attributes?: array<string, scalar|Param|null>,
  1035. * route?: scalar|Param|null, // Default: null
  1036. * methods?: Param|string|list<scalar|Param|null>,
  1037. * allow_if?: scalar|Param|null, // Default: null
  1038. * roles?: Param|string|list<scalar|Param|null>,
  1039. * }>,
  1040. * role_hierarchy?: array<string, Param|string|list<scalar|Param|null>>,
  1041. * }
  1042. * @psalm-type DoctrineConfig = array{
  1043. * dbal?: array{
  1044. * default_connection?: scalar|Param|null,
  1045. * types?: array<string, Param|string|array{ // Default: []
  1046. * class?: scalar|Param|null,
  1047. * }>,
  1048. * driver_schemes?: array<string, scalar|Param|null>,
  1049. * connections?: array<string, array{ // Default: []
  1050. * url?: scalar|Param|null, // A URL with connection information; any parameter value parsed from this string will override explicitly set parameters
  1051. * dbname?: scalar|Param|null,
  1052. * host?: scalar|Param|null, // Defaults to "localhost" at runtime.
  1053. * port?: scalar|Param|null, // Defaults to null at runtime.
  1054. * user?: scalar|Param|null, // Defaults to "root" at runtime.
  1055. * password?: scalar|Param|null, // Defaults to null at runtime.
  1056. * dbname_suffix?: scalar|Param|null, // Adds the given suffix to the configured database name, this option has no effects for the SQLite platform
  1057. * application_name?: scalar|Param|null,
  1058. * charset?: scalar|Param|null,
  1059. * path?: scalar|Param|null,
  1060. * memory?: bool|Param,
  1061. * unix_socket?: scalar|Param|null, // The unix socket to use for MySQL
  1062. * persistent?: bool|Param, // True to use as persistent connection for the ibm_db2 driver
  1063. * protocol?: scalar|Param|null, // The protocol to use for the ibm_db2 driver (default to TCPIP if omitted)
  1064. * service?: bool|Param, // True to use SERVICE_NAME as connection parameter instead of SID for Oracle
  1065. * servicename?: scalar|Param|null, // Overrules dbname parameter if given and used as SERVICE_NAME or SID connection parameter for Oracle depending on the service parameter.
  1066. * sessionMode?: scalar|Param|null, // The session mode to use for the oci8 driver
  1067. * server?: scalar|Param|null, // The name of a running database server to connect to for SQL Anywhere.
  1068. * default_dbname?: scalar|Param|null, // Override the default database (postgres) to connect to for PostgreSQL connection.
  1069. * sslmode?: scalar|Param|null, // Determines whether or with what priority a SSL TCP/IP connection will be negotiated with the server for PostgreSQL.
  1070. * sslrootcert?: scalar|Param|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.
  1071. * sslcert?: scalar|Param|null, // The path to the SSL client certificate file for PostgreSQL.
  1072. * sslkey?: scalar|Param|null, // The path to the SSL client key file for PostgreSQL.
  1073. * sslcrl?: scalar|Param|null, // The file name of the SSL certificate revocation list for PostgreSQL.
  1074. * pooled?: bool|Param, // True to use a pooled server with the oci8/pdo_oracle driver
  1075. * MultipleActiveResultSets?: bool|Param, // Configuring MultipleActiveResultSets for the pdo_sqlsrv driver
  1076. * instancename?: scalar|Param|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.
  1077. * connectstring?: scalar|Param|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.
  1078. * driver?: scalar|Param|null, // Default: "pdo_mysql"
  1079. * auto_commit?: bool|Param,
  1080. * schema_filter?: scalar|Param|null,
  1081. * logging?: bool|Param, // Default: true
  1082. * profiling?: bool|Param, // Default: true
  1083. * profiling_collect_backtrace?: bool|Param, // Enables collecting backtraces when profiling is enabled // Default: false
  1084. * profiling_collect_schema_errors?: bool|Param, // Enables collecting schema errors when profiling is enabled // Default: true
  1085. * server_version?: scalar|Param|null,
  1086. * idle_connection_ttl?: int|Param, // Default: 600
  1087. * driver_class?: scalar|Param|null,
  1088. * wrapper_class?: scalar|Param|null,
  1089. * keep_replica?: bool|Param,
  1090. * options?: array<string, mixed>,
  1091. * mapping_types?: array<string, scalar|Param|null>,
  1092. * default_table_options?: array<string, scalar|Param|null>,
  1093. * schema_manager_factory?: scalar|Param|null, // Default: "doctrine.dbal.default_schema_manager_factory"
  1094. * result_cache?: scalar|Param|null,
  1095. * replicas?: array<string, array{ // Default: []
  1096. * url?: scalar|Param|null, // A URL with connection information; any parameter value parsed from this string will override explicitly set parameters
  1097. * dbname?: scalar|Param|null,
  1098. * host?: scalar|Param|null, // Defaults to "localhost" at runtime.
  1099. * port?: scalar|Param|null, // Defaults to null at runtime.
  1100. * user?: scalar|Param|null, // Defaults to "root" at runtime.
  1101. * password?: scalar|Param|null, // Defaults to null at runtime.
  1102. * dbname_suffix?: scalar|Param|null, // Adds the given suffix to the configured database name, this option has no effects for the SQLite platform
  1103. * application_name?: scalar|Param|null,
  1104. * charset?: scalar|Param|null,
  1105. * path?: scalar|Param|null,
  1106. * memory?: bool|Param,
  1107. * unix_socket?: scalar|Param|null, // The unix socket to use for MySQL
  1108. * persistent?: bool|Param, // True to use as persistent connection for the ibm_db2 driver
  1109. * protocol?: scalar|Param|null, // The protocol to use for the ibm_db2 driver (default to TCPIP if omitted)
  1110. * service?: bool|Param, // True to use SERVICE_NAME as connection parameter instead of SID for Oracle
  1111. * servicename?: scalar|Param|null, // Overrules dbname parameter if given and used as SERVICE_NAME or SID connection parameter for Oracle depending on the service parameter.
  1112. * sessionMode?: scalar|Param|null, // The session mode to use for the oci8 driver
  1113. * server?: scalar|Param|null, // The name of a running database server to connect to for SQL Anywhere.
  1114. * default_dbname?: scalar|Param|null, // Override the default database (postgres) to connect to for PostgreSQL connection.
  1115. * sslmode?: scalar|Param|null, // Determines whether or with what priority a SSL TCP/IP connection will be negotiated with the server for PostgreSQL.
  1116. * sslrootcert?: scalar|Param|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.
  1117. * sslcert?: scalar|Param|null, // The path to the SSL client certificate file for PostgreSQL.
  1118. * sslkey?: scalar|Param|null, // The path to the SSL client key file for PostgreSQL.
  1119. * sslcrl?: scalar|Param|null, // The file name of the SSL certificate revocation list for PostgreSQL.
  1120. * pooled?: bool|Param, // True to use a pooled server with the oci8/pdo_oracle driver
  1121. * MultipleActiveResultSets?: bool|Param, // Configuring MultipleActiveResultSets for the pdo_sqlsrv driver
  1122. * instancename?: scalar|Param|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.
  1123. * connectstring?: scalar|Param|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.
  1124. * ...<string, mixed>
  1125. * }>,
  1126. * ...<string, mixed>
  1127. * }>,
  1128. * ...<string, mixed>
  1129. * },
  1130. * orm?: array{
  1131. * default_entity_manager?: scalar|Param|null,
  1132. * enable_native_lazy_objects?: bool|Param, // Deprecated: The "enable_native_lazy_objects" option is deprecated and will be removed in DoctrineBundle 4.0, as native lazy objects are now always enabled. // Default: true
  1133. * controller_resolver?: bool|array{
  1134. * enabled?: bool|Param, // Default: true
  1135. * auto_mapping?: bool|Param, // Deprecated: The "doctrine.orm.controller_resolver.auto_mapping.auto_mapping" option is deprecated and will be removed in DoctrineBundle 4.0, as it only accepts `false` since 3.0. // Set to true to enable using route placeholders as lookup criteria when the primary key doesn't match the argument name // Default: false
  1136. * evict_cache?: bool|Param, // Set to true to fetch the entity from the database instead of using the cache, if any // Default: false
  1137. * },
  1138. * entity_managers?: array<string, array{ // Default: []
  1139. * query_cache_driver?: Param|string|array{
  1140. * type?: scalar|Param|null, // Default: null
  1141. * id?: scalar|Param|null,
  1142. * pool?: scalar|Param|null,
  1143. * },
  1144. * metadata_cache_driver?: Param|string|array{
  1145. * type?: scalar|Param|null, // Default: null
  1146. * id?: scalar|Param|null,
  1147. * pool?: scalar|Param|null,
  1148. * },
  1149. * result_cache_driver?: Param|string|array{
  1150. * type?: scalar|Param|null, // Default: null
  1151. * id?: scalar|Param|null,
  1152. * pool?: scalar|Param|null,
  1153. * },
  1154. * entity_listeners?: array{
  1155. * entities?: array<string, array{ // Default: []
  1156. * listeners?: array<string, array{ // Default: []
  1157. * events?: list<array{ // Default: []
  1158. * type?: scalar|Param|null,
  1159. * method?: scalar|Param|null, // Default: null
  1160. * }>,
  1161. * }>,
  1162. * }>,
  1163. * ...<string, mixed>
  1164. * },
  1165. * connection?: scalar|Param|null,
  1166. * class_metadata_factory_name?: scalar|Param|null, // Default: "Doctrine\\ORM\\Mapping\\ClassMetadataFactory"
  1167. * default_repository_class?: scalar|Param|null, // Default: "Doctrine\\ORM\\EntityRepository"
  1168. * auto_mapping?: scalar|Param|null, // Default: false
  1169. * naming_strategy?: scalar|Param|null, // Default: "doctrine.orm.naming_strategy.default"
  1170. * quote_strategy?: scalar|Param|null, // Default: "doctrine.orm.quote_strategy.default"
  1171. * typed_field_mapper?: scalar|Param|null, // Default: "doctrine.orm.typed_field_mapper.default"
  1172. * entity_listener_resolver?: scalar|Param|null, // Default: null
  1173. * fetch_mode_subselect_batch_size?: scalar|Param|null,
  1174. * repository_factory?: scalar|Param|null, // Default: "doctrine.orm.container_repository_factory"
  1175. * schema_ignore_classes?: list<scalar|Param|null>,
  1176. * validate_xml_mapping?: bool|Param, // Set to "true" to opt-in to the new mapping driver mode that was added in Doctrine ORM 2.14 and will be mandatory in ORM 3.0. See https://github.com/doctrine/orm/pull/6728. // Default: false
  1177. * second_level_cache?: array{
  1178. * region_cache_driver?: Param|string|array{
  1179. * type?: scalar|Param|null, // Default: null
  1180. * id?: scalar|Param|null,
  1181. * pool?: scalar|Param|null,
  1182. * },
  1183. * region_lock_lifetime?: scalar|Param|null, // Default: 60
  1184. * log_enabled?: bool|Param, // Default: true
  1185. * region_lifetime?: scalar|Param|null, // Default: 3600
  1186. * enabled?: bool|Param, // Default: true
  1187. * factory?: scalar|Param|null,
  1188. * regions?: array<string, array{ // Default: []
  1189. * cache_driver?: Param|string|array{
  1190. * type?: scalar|Param|null, // Default: null
  1191. * id?: scalar|Param|null,
  1192. * pool?: scalar|Param|null,
  1193. * },
  1194. * lock_path?: scalar|Param|null, // Default: "%kernel.cache_dir%/doctrine/orm/slc/filelock"
  1195. * lock_lifetime?: scalar|Param|null, // Default: 60
  1196. * type?: scalar|Param|null, // Default: "default"
  1197. * lifetime?: scalar|Param|null, // Default: null
  1198. * service?: scalar|Param|null,
  1199. * name?: scalar|Param|null,
  1200. * }>,
  1201. * loggers?: array<string, array{ // Default: []
  1202. * name?: scalar|Param|null,
  1203. * service?: scalar|Param|null,
  1204. * }>,
  1205. * },
  1206. * hydrators?: array<string, scalar|Param|null>,
  1207. * mappings?: array<string, Param|bool|string|array{ // Default: []
  1208. * mapping?: scalar|Param|null, // Default: true
  1209. * type?: scalar|Param|null,
  1210. * dir?: scalar|Param|null,
  1211. * alias?: scalar|Param|null,
  1212. * prefix?: scalar|Param|null,
  1213. * is_bundle?: bool|Param,
  1214. * }>,
  1215. * dql?: array{
  1216. * string_functions?: array<string, scalar|Param|null>,
  1217. * numeric_functions?: array<string, scalar|Param|null>,
  1218. * datetime_functions?: array<string, scalar|Param|null>,
  1219. * },
  1220. * filters?: array<string, Param|string|array{ // Default: []
  1221. * class?: scalar|Param|null,
  1222. * enabled?: bool|Param, // Default: false
  1223. * parameters?: array<string, mixed>,
  1224. * ...<string, mixed>
  1225. * }>,
  1226. * identity_generation_preferences?: array<string, scalar|Param|null>,
  1227. * }>,
  1228. * resolve_target_entities?: array<string, scalar|Param|null>,
  1229. * ...<string, mixed>
  1230. * },
  1231. * }
  1232. * @psalm-type DoctrineMigrationsConfig = array{
  1233. * enable_service_migrations?: bool|Param, // Whether to enable fetching migrations from the service container. // Default: false
  1234. * migrations_paths?: array<string, scalar|Param|null>,
  1235. * services?: array<string, scalar|Param|null>,
  1236. * factories?: array<string, scalar|Param|null>,
  1237. * storage?: array{ // Storage to use for migration status metadata.
  1238. * table_storage?: array{ // The default metadata storage, implemented as a table in the database.
  1239. * table_name?: scalar|Param|null, // Default: null
  1240. * version_column_name?: scalar|Param|null, // Default: null
  1241. * version_column_length?: scalar|Param|null, // Default: null
  1242. * executed_at_column_name?: scalar|Param|null, // Default: null
  1243. * execution_time_column_name?: scalar|Param|null, // Default: null
  1244. * },
  1245. * },
  1246. * migrations?: list<scalar|Param|null>,
  1247. * connection?: scalar|Param|null, // Connection name to use for the migrations database. // Default: null
  1248. * em?: scalar|Param|null, // Entity manager name to use for the migrations database (available when doctrine/orm is installed). // Default: null
  1249. * all_or_nothing?: scalar|Param|null, // Run all migrations in a transaction. // Default: false
  1250. * check_database_platform?: scalar|Param|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
  1251. * custom_template?: scalar|Param|null, // Custom template path for generated migration classes. // Default: null
  1252. * organize_migrations?: scalar|Param|null, // Organize migrations mode. Possible values are: "BY_YEAR", "BY_YEAR_AND_MONTH", false // Default: false
  1253. * enable_profiler?: bool|Param, // Whether or not to enable the profiler collector to calculate and visualize migration status. This adds some queries overhead. // Default: false
  1254. * transactional?: bool|Param, // Whether or not to wrap migrations in a single transaction. // Default: true
  1255. * }
  1256. * @psalm-type NelmioCorsConfig = array{
  1257. * defaults?: array{
  1258. * allow_credentials?: bool|Param, // Default: false
  1259. * allow_origin?: list<scalar|Param|null>,
  1260. * allow_headers?: list<scalar|Param|null>,
  1261. * allow_methods?: list<scalar|Param|null>,
  1262. * allow_private_network?: bool|Param, // Default: false
  1263. * expose_headers?: list<scalar|Param|null>,
  1264. * max_age?: scalar|Param|null, // Default: 0
  1265. * hosts?: list<scalar|Param|null>,
  1266. * origin_regex?: bool|Param, // Default: false
  1267. * forced_allow_origin_value?: scalar|Param|null, // Default: null
  1268. * skip_same_as_origin?: bool|Param, // Default: true
  1269. * },
  1270. * paths?: array<string, array{ // Default: []
  1271. * allow_credentials?: bool|Param,
  1272. * allow_origin?: list<scalar|Param|null>,
  1273. * allow_headers?: list<scalar|Param|null>,
  1274. * allow_methods?: list<scalar|Param|null>,
  1275. * allow_private_network?: bool|Param,
  1276. * expose_headers?: list<scalar|Param|null>,
  1277. * max_age?: scalar|Param|null, // Default: 0
  1278. * hosts?: list<scalar|Param|null>,
  1279. * origin_regex?: bool|Param,
  1280. * forced_allow_origin_value?: scalar|Param|null, // Default: null
  1281. * skip_same_as_origin?: bool|Param,
  1282. * }>,
  1283. * }
  1284. * @psalm-type ApiPlatformConfig = array{
  1285. * title?: scalar|Param|null, // The title of the API. // Default: ""
  1286. * description?: scalar|Param|null, // The description of the API. // Default: ""
  1287. * version?: scalar|Param|null, // The version of the API. // Default: "0.0.0"
  1288. * show_webby?: bool|Param, // If true, show Webby on the documentation page // Default: true
  1289. * use_symfony_listeners?: bool|Param, // Uses Symfony event listeners instead of the ApiPlatform\Symfony\Controller\MainController. // Default: false
  1290. * name_converter?: scalar|Param|null, // Specify a name converter to use. // Default: null
  1291. * asset_package?: scalar|Param|null, // Specify an asset package name to use. // Default: null
  1292. * path_segment_name_generator?: scalar|Param|null, // Specify a path name generator to use. // Default: "api_platform.metadata.path_segment_name_generator.underscore"
  1293. * inflector?: scalar|Param|null, // Specify an inflector to use. // Default: "api_platform.metadata.inflector"
  1294. * validator?: array{
  1295. * serialize_payload_fields?: mixed, // Set to null to serialize all payload fields when a validation error is thrown, or set the fields you want to include explicitly. // Default: []
  1296. * query_parameter_validation?: bool|Param, // Deprecated: The "query_parameter_validation" configuration is deprecated and will be removed in API Platform 5.0. // Default: true
  1297. * },
  1298. * jsonapi?: array{
  1299. * use_iri_as_id?: bool|Param|null, // Set to false to use entity identifiers instead of IRIs as the "id" field in JSON:API responses. Defaults to true; this default will change to false in API Platform 5.0. // Default: null
  1300. * allow_client_generated_id?: bool|Param, // Allow client-generated IDs on JSON:API POST per https://jsonapi.org/format/#crud-creating-client-ids. Off by default to prevent id spoofing on public endpoints. // Default: false
  1301. * },
  1302. * eager_loading?: bool|array{
  1303. * enabled?: bool|Param, // Default: true
  1304. * fetch_partial?: bool|Param, // Fetch only partial data according to serialization groups. If enabled, Doctrine ORM entities will not work as expected if any of the other fields are used. // Default: false
  1305. * max_joins?: int|Param, // Max number of joined relations before EagerLoading throws a RuntimeException // Default: 30
  1306. * force_eager?: bool|Param, // Force join on every relation. If disabled, it will only join relations having the EAGER fetch mode. // Default: true
  1307. * },
  1308. * handle_symfony_errors?: bool|Param, // Allows to handle symfony exceptions. // Default: false
  1309. * enable_swagger?: bool|Param, // Enable the Swagger documentation and export. // Default: true
  1310. * enable_json_streamer?: bool|Param, // Enable json streamer. // Default: false
  1311. * enable_swagger_ui?: bool|Param, // Enable Swagger UI // Default: true
  1312. * enable_re_doc?: bool|Param, // Enable ReDoc // Default: true
  1313. * enable_scalar?: bool|Param, // Enable Scalar API Reference // Default: true
  1314. * enable_entrypoint?: bool|Param, // Enable the entrypoint // Default: true
  1315. * enable_docs?: bool|Param, // Enable the docs // Default: true
  1316. * enable_head_request_optimization?: bool|Param, // Skip response body construction on HEAD requests so collections are not iterated. Disable to process HEAD identically to GET. // Default: true
  1317. * enable_profiler?: bool|Param, // Enable the data collector and the WebProfilerBundle integration. // Default: true
  1318. * enable_phpdoc_parser?: bool|Param, // Enable resource metadata collector using PHPStan PhpDocParser. // Default: true
  1319. * enable_link_security?: bool|Param, // Deprecated: The "enable_link_security" configuration is deprecated, this option is always enabled and will be removed in API Platform 5.0. // Enable security for Links (sub resources). // Default: true
  1320. * collection?: array{
  1321. * exists_parameter_name?: scalar|Param|null, // The name of the query parameter to filter on nullable field values. // Default: "exists"
  1322. * order?: scalar|Param|null, // The default order of results. // Default: "ASC"
  1323. * order_parameter_name?: scalar|Param|null, // The name of the query parameter to order results. // Default: "order"
  1324. * order_nulls_comparison?: "nulls_smallest"|"nulls_largest"|"nulls_always_first"|"nulls_always_last"|Param|null, // The nulls comparison strategy. // Default: null
  1325. * pagination?: bool|array{
  1326. * enabled?: bool|Param, // Default: true
  1327. * page_parameter_name?: scalar|Param|null, // The default name of the parameter handling the page number. // Default: "page"
  1328. * enabled_parameter_name?: scalar|Param|null, // The name of the query parameter to enable or disable pagination. // Default: "pagination"
  1329. * items_per_page_parameter_name?: scalar|Param|null, // The name of the query parameter to set the number of items per page. // Default: "itemsPerPage"
  1330. * partial_parameter_name?: scalar|Param|null, // The name of the query parameter to enable or disable partial pagination. // Default: "partial"
  1331. * },
  1332. * },
  1333. * mapping?: array{
  1334. * imports?: list<scalar|Param|null>,
  1335. * paths?: list<scalar|Param|null>,
  1336. * },
  1337. * resource_class_directories?: list<scalar|Param|null>,
  1338. * serializer?: array{
  1339. * hydra_prefix?: bool|Param, // Use the "hydra:" prefix. // Default: false
  1340. * },
  1341. * doctrine?: bool|array{
  1342. * enabled?: bool|Param, // Default: true
  1343. * },
  1344. * doctrine_mongodb_odm?: bool|array{
  1345. * enabled?: bool|Param, // Default: false
  1346. * },
  1347. * oauth?: bool|array{
  1348. * enabled?: bool|Param, // Default: false
  1349. * clientId?: scalar|Param|null, // The oauth client id. // Default: ""
  1350. * clientSecret?: scalar|Param|null, // The OAuth client secret. Never use this parameter in your production environment. It exposes crucial security information. This feature is intended for dev/test environments only. Enable "oauth.pkce" instead // Default: ""
  1351. * pkce?: bool|Param, // Enable the oauth PKCE. // Default: false
  1352. * type?: scalar|Param|null, // The oauth type. // Default: "oauth2"
  1353. * flow?: scalar|Param|null, // The oauth flow grant type. // Default: "application"
  1354. * tokenUrl?: scalar|Param|null, // The oauth token url. // Default: ""
  1355. * authorizationUrl?: scalar|Param|null, // The oauth authentication url. // Default: ""
  1356. * refreshUrl?: scalar|Param|null, // The oauth refresh url. // Default: ""
  1357. * scopes?: list<scalar|Param|null>,
  1358. * },
  1359. * graphql?: bool|array{
  1360. * enabled?: bool|Param, // Default: false
  1361. * default_ide?: scalar|Param|null, // Default: "graphiql"
  1362. * graphiql?: bool|array{
  1363. * enabled?: bool|Param, // Default: false
  1364. * },
  1365. * introspection?: bool|array{
  1366. * enabled?: bool|Param, // Default: true
  1367. * },
  1368. * max_query_depth?: int|Param, // Default: 20
  1369. * graphql_playground?: bool|array{ // Deprecated: The "graphql_playground" configuration is deprecated and will be ignored.
  1370. * enabled?: bool|Param, // Default: false
  1371. * },
  1372. * max_query_complexity?: int|Param, // Default: 500
  1373. * nesting_separator?: scalar|Param|null, // The separator to use to filter nested fields. // Default: "_"
  1374. * collection?: array{
  1375. * pagination?: bool|array{
  1376. * enabled?: bool|Param, // Default: true
  1377. * },
  1378. * },
  1379. * },
  1380. * swagger?: array{
  1381. * persist_authorization?: bool|Param, // Persist the SwaggerUI Authorization in the localStorage. // Default: false
  1382. * with_credentials?: bool|Param, // Send credentials (cookies, authorization headers) on Swagger UI cross-origin requests (e.g. when running behind Cloudflare Access). // Default: false
  1383. * versions?: list<scalar|Param|null>,
  1384. * api_keys?: array<string, array{ // Default: []
  1385. * name?: scalar|Param|null, // The name of the header or query parameter containing the api key.
  1386. * type?: "query"|"header"|Param, // Whether the api key should be a query parameter or a header.
  1387. * }>,
  1388. * http_auth?: array<string, array{ // Default: []
  1389. * scheme?: scalar|Param|null, // The OpenAPI HTTP auth scheme, for example "bearer"
  1390. * bearerFormat?: scalar|Param|null, // The OpenAPI HTTP bearer format
  1391. * }>,
  1392. * swagger_ui_extra_configuration?: mixed, // To pass extra configuration to Swagger UI, like docExpansion or filter. // Default: []
  1393. * },
  1394. * http_cache?: array{
  1395. * public?: bool|Param|null, // To make all responses public by default. // Default: null
  1396. * invalidation?: bool|array{ // Enable the tags-based cache invalidation system.
  1397. * enabled?: bool|Param, // Default: false
  1398. * varnish_urls?: list<scalar|Param|null>,
  1399. * urls?: list<scalar|Param|null>,
  1400. * scoped_clients?: list<scalar|Param|null>,
  1401. * max_header_length?: int|Param, // Max header length supported by the cache server. // Default: 7500
  1402. * request_options?: mixed, // To pass options to the client charged with the request. // Default: []
  1403. * purger?: scalar|Param|null, // Specify a purger to use (available values: "api_platform.http_cache.purger.varnish.ban", "api_platform.http_cache.purger.varnish.xkey", "api_platform.http_cache.purger.souin"). // Default: "api_platform.http_cache.purger.varnish"
  1404. * xkey?: array{ // Deprecated: The "xkey" configuration is deprecated, use your own purger to customize surrogate keys or the appropriate parameters.
  1405. * glue?: scalar|Param|null, // xkey glue between keys // Default: " "
  1406. * },
  1407. * },
  1408. * },
  1409. * mercure?: bool|array{
  1410. * enabled?: bool|Param, // Default: false
  1411. * hub_url?: scalar|Param|null, // The URL sent in the Link HTTP header. If not set, will default to the URL for MercureBundle's default hub. // Default: null
  1412. * include_type?: bool|Param, // Always include @type in updates (including delete ones). // Default: false
  1413. * },
  1414. * messenger?: bool|array{
  1415. * enabled?: bool|Param, // Default: false
  1416. * },
  1417. * elasticsearch?: bool|array{
  1418. * enabled?: bool|Param, // Default: false
  1419. * hosts?: list<scalar|Param|null>,
  1420. * ssl_ca_bundle?: scalar|Param|null, // Path to the SSL CA bundle file for Elasticsearch SSL verification. // Default: null
  1421. * ssl_verification?: bool|Param, // Enable or disable SSL verification for Elasticsearch connections. // Default: true
  1422. * client?: "elasticsearch"|"opensearch"|Param, // The search engine client to use: "elasticsearch" or "opensearch". // Default: "elasticsearch"
  1423. * },
  1424. * openapi?: array{
  1425. * contact?: array{
  1426. * name?: scalar|Param|null, // The identifying name of the contact person/organization. // Default: null
  1427. * url?: scalar|Param|null, // The URL pointing to the contact information. MUST be in the format of a URL. // Default: null
  1428. * email?: scalar|Param|null, // The email address of the contact person/organization. MUST be in the format of an email address. // Default: null
  1429. * },
  1430. * termsOfService?: scalar|Param|null, // A URL to the Terms of Service for the API. MUST be in the format of a URL. // Default: null
  1431. * tags?: list<array{ // Default: []
  1432. * name?: scalar|Param|null,
  1433. * description?: scalar|Param|null, // Default: null
  1434. * }>,
  1435. * license?: array{
  1436. * name?: scalar|Param|null, // The license name used for the API. // Default: null
  1437. * url?: scalar|Param|null, // URL to the license used for the API. MUST be in the format of a URL. // Default: null
  1438. * identifier?: scalar|Param|null, // An SPDX license expression for the API. The identifier field is mutually exclusive of the url field. // Default: null
  1439. * },
  1440. * swagger_ui_extra_configuration?: mixed, // To pass extra configuration to Swagger UI, like docExpansion or filter. // Default: []
  1441. * scalar_extra_configuration?: mixed, // To pass extra configuration to Scalar API Reference, like theme or darkMode. // Default: []
  1442. * overrideResponses?: bool|Param, // Whether API Platform adds automatic responses to the OpenAPI documentation. // Default: true
  1443. * error_resource_class?: scalar|Param|null, // The class used to represent errors in the OpenAPI documentation. // Default: null
  1444. * validation_error_resource_class?: scalar|Param|null, // The class used to represent validation errors in the OpenAPI documentation. // Default: null
  1445. * },
  1446. * maker?: bool|array{
  1447. * enabled?: bool|Param, // Default: false
  1448. * namespace_prefix?: scalar|Param|null, // Add a prefix to all maker generated classes. e.g set it to "Api" to set the maker namespace to "App\Api\" (if the maker.root_namespace config is App). e.g. App\Api\State\MyStateProcessor // Default: ""
  1449. * },
  1450. * mcp?: bool|array{
  1451. * enabled?: bool|Param, // Default: true
  1452. * format?: scalar|Param|null, // The serialization format used for MCP tool input/output. Must be a format registered in api_platform.formats (e.g. "jsonld", "json", "jsonapi"). // Default: "jsonld"
  1453. * },
  1454. * exception_to_status?: array<string, int|Param>,
  1455. * formats?: array<string, array{ // Default: {"jsonld":{"mime_types":["application/ld+json"]}}
  1456. * mime_types?: list<scalar|Param|null>,
  1457. * }>,
  1458. * patch_formats?: array<string, array{ // Default: {"json":{"mime_types":["application/merge-patch+json"]}}
  1459. * mime_types?: list<scalar|Param|null>,
  1460. * }>,
  1461. * docs_formats?: array<string, array{ // Default: {"jsonld":{"mime_types":["application/ld+json"]},"jsonopenapi":{"mime_types":["application/vnd.openapi+json"]},"html":{"mime_types":["text/html"]},"yamlopenapi":{"mime_types":["application/vnd.openapi+yaml"]}}
  1462. * mime_types?: list<scalar|Param|null>,
  1463. * }>,
  1464. * error_formats?: array<string, array{ // Default: {"jsonld":{"mime_types":["application/ld+json"]},"jsonproblem":{"mime_types":["application/problem+json"]},"json":{"mime_types":["application/problem+json","application/json"]}}
  1465. * mime_types?: list<scalar|Param|null>,
  1466. * }>,
  1467. * jsonschema_formats?: list<scalar|Param|null>,
  1468. * defaults?: array{
  1469. * uri_template?: mixed,
  1470. * short_name?: mixed,
  1471. * description?: mixed,
  1472. * types?: mixed,
  1473. * operations?: mixed,
  1474. * formats?: mixed,
  1475. * input_formats?: mixed,
  1476. * output_formats?: mixed,
  1477. * uri_variables?: mixed,
  1478. * route_prefix?: mixed,
  1479. * defaults?: mixed,
  1480. * requirements?: mixed,
  1481. * options?: mixed,
  1482. * stateless?: mixed,
  1483. * sunset?: mixed,
  1484. * accept_patch?: mixed,
  1485. * status?: mixed,
  1486. * host?: mixed,
  1487. * schemes?: mixed,
  1488. * condition?: mixed,
  1489. * controller?: mixed,
  1490. * class?: mixed,
  1491. * url_generation_strategy?: mixed,
  1492. * deprecation_reason?: mixed,
  1493. * headers?: mixed,
  1494. * cache_headers?: mixed,
  1495. * normalization_context?: mixed,
  1496. * denormalization_context?: mixed,
  1497. * collect_denormalization_errors?: mixed,
  1498. * hydra_context?: mixed,
  1499. * jsonld_context?: mixed,
  1500. * openapi?: mixed,
  1501. * validation_context?: mixed,
  1502. * filters?: mixed,
  1503. * mercure?: mixed,
  1504. * messenger?: mixed,
  1505. * input?: mixed,
  1506. * output?: mixed,
  1507. * order?: mixed,
  1508. * fetch_partial?: mixed,
  1509. * force_eager?: mixed,
  1510. * pagination_client_enabled?: mixed,
  1511. * pagination_client_items_per_page?: mixed,
  1512. * pagination_client_partial?: mixed,
  1513. * pagination_via_cursor?: mixed,
  1514. * pagination_enabled?: mixed,
  1515. * pagination_fetch_join_collection?: mixed,
  1516. * pagination_use_output_walkers?: mixed,
  1517. * pagination_items_per_page?: mixed,
  1518. * pagination_maximum_items_per_page?: mixed,
  1519. * pagination_partial?: mixed,
  1520. * pagination_type?: mixed,
  1521. * security?: mixed,
  1522. * security_message?: mixed,
  1523. * security_post_denormalize?: mixed,
  1524. * security_post_denormalize_message?: mixed,
  1525. * security_post_validation?: mixed,
  1526. * security_post_validation_message?: mixed,
  1527. * composite_identifier?: mixed,
  1528. * exception_to_status?: mixed,
  1529. * query_parameter_validation_enabled?: mixed,
  1530. * links?: mixed,
  1531. * graph_ql_operations?: mixed,
  1532. * provider?: mixed,
  1533. * processor?: mixed,
  1534. * state_options?: mixed,
  1535. * rules?: mixed,
  1536. * policy?: mixed,
  1537. * middleware?: mixed,
  1538. * parameters?: array<string, array{ // Default: []
  1539. * class?: scalar|Param|null, // The parameter class for a named global parameter entry.
  1540. * key?: mixed,
  1541. * schema?: mixed,
  1542. * open_api?: mixed,
  1543. * provider?: mixed,
  1544. * filter?: mixed,
  1545. * property?: mixed,
  1546. * description?: mixed,
  1547. * properties?: mixed,
  1548. * required?: mixed,
  1549. * priority?: mixed,
  1550. * hydra?: mixed,
  1551. * constraints?: mixed,
  1552. * security?: mixed,
  1553. * security_message?: mixed,
  1554. * extra_properties?: mixed,
  1555. * filter_context?: mixed,
  1556. * native_type?: mixed,
  1557. * cast_to_array?: mixed,
  1558. * cast_to_native_type?: mixed,
  1559. * cast_fn?: mixed,
  1560. * default?: mixed,
  1561. * filter_class?: mixed,
  1562. * ...<string, mixed>
  1563. * }>,
  1564. * strict_query_parameter_validation?: mixed,
  1565. * hide_hydra_operation?: mixed,
  1566. * json_stream?: mixed,
  1567. * throw_on_not_found?: mixed,
  1568. * extra_properties?: mixed,
  1569. * map?: mixed,
  1570. * mcp?: mixed,
  1571. * route_name?: mixed,
  1572. * errors?: mixed,
  1573. * read?: mixed,
  1574. * deserialize?: mixed,
  1575. * validate?: mixed,
  1576. * write?: mixed,
  1577. * serialize?: mixed,
  1578. * content_negotiation?: mixed,
  1579. * priority?: mixed,
  1580. * name?: mixed,
  1581. * allow_create?: mixed,
  1582. * item_uri_template?: mixed,
  1583. * ...<string, mixed>
  1584. * },
  1585. * ...<string, mixed>
  1586. * }
  1587. * @psalm-type ConfigType = array{
  1588. * imports?: ImportsConfig,
  1589. * parameters?: ParametersConfig,
  1590. * services?: ServicesConfig,
  1591. * framework?: FrameworkConfig,
  1592. * twig?: TwigConfig,
  1593. * security?: SecurityConfig,
  1594. * doctrine?: DoctrineConfig,
  1595. * doctrine_migrations?: DoctrineMigrationsConfig,
  1596. * nelmio_cors?: NelmioCorsConfig,
  1597. * api_platform?: ApiPlatformConfig,
  1598. * "when@dev"?: array{
  1599. * imports?: ImportsConfig,
  1600. * parameters?: ParametersConfig,
  1601. * services?: ServicesConfig,
  1602. * framework?: FrameworkConfig,
  1603. * twig?: TwigConfig,
  1604. * security?: SecurityConfig,
  1605. * doctrine?: DoctrineConfig,
  1606. * doctrine_migrations?: DoctrineMigrationsConfig,
  1607. * nelmio_cors?: NelmioCorsConfig,
  1608. * api_platform?: ApiPlatformConfig,
  1609. * },
  1610. * "when@prod"?: array{
  1611. * imports?: ImportsConfig,
  1612. * parameters?: ParametersConfig,
  1613. * services?: ServicesConfig,
  1614. * framework?: FrameworkConfig,
  1615. * twig?: TwigConfig,
  1616. * security?: SecurityConfig,
  1617. * doctrine?: DoctrineConfig,
  1618. * doctrine_migrations?: DoctrineMigrationsConfig,
  1619. * nelmio_cors?: NelmioCorsConfig,
  1620. * api_platform?: ApiPlatformConfig,
  1621. * },
  1622. * "when@test"?: array{
  1623. * imports?: ImportsConfig,
  1624. * parameters?: ParametersConfig,
  1625. * services?: ServicesConfig,
  1626. * framework?: FrameworkConfig,
  1627. * twig?: TwigConfig,
  1628. * security?: SecurityConfig,
  1629. * doctrine?: DoctrineConfig,
  1630. * doctrine_migrations?: DoctrineMigrationsConfig,
  1631. * nelmio_cors?: NelmioCorsConfig,
  1632. * api_platform?: ApiPlatformConfig,
  1633. * },
  1634. * ...<string, ExtensionType|array{ // extra keys must follow the when@%env% pattern or match an extension alias
  1635. * imports?: ImportsConfig,
  1636. * parameters?: ParametersConfig,
  1637. * services?: ServicesConfig,
  1638. * ...<string, ExtensionType>,
  1639. * }>
  1640. * }
  1641. */
  1642. final class App
  1643. {
  1644. /**
  1645. * @param ConfigType $config
  1646. *
  1647. * @psalm-return ConfigType
  1648. */
  1649. public static function config(array $config): array
  1650. {
  1651. /** @var ConfigType $config */
  1652. $config = AppReference::config($config);
  1653. return $config;
  1654. }
  1655. }
  1656. namespace Symfony\Component\Routing\Loader\Configurator;
  1657. /**
  1658. * This class provides array-shapes for configuring the routes of an application.
  1659. *
  1660. * Example:
  1661. *
  1662. * ```php
  1663. * // config/routes.php
  1664. * namespace Symfony\Component\Routing\Loader\Configurator;
  1665. *
  1666. * return Routes::config([
  1667. * 'controllers' => [
  1668. * 'resource' => 'routing.controllers',
  1669. * ],
  1670. * ]);
  1671. * ```
  1672. *
  1673. * @psalm-type RouteConfig = array{
  1674. * path: string|array<string,string>,
  1675. * controller?: string,
  1676. * methods?: string|list<string>,
  1677. * requirements?: array<string,string>,
  1678. * defaults?: array<string,mixed>,
  1679. * options?: array<string,mixed>,
  1680. * host?: string|array<string,string>,
  1681. * schemes?: string|list<string>,
  1682. * condition?: string,
  1683. * locale?: string,
  1684. * format?: string,
  1685. * utf8?: bool,
  1686. * stateless?: bool,
  1687. * }
  1688. * @psalm-type ImportConfig = array{
  1689. * resource: string,
  1690. * type?: string,
  1691. * exclude?: string|list<string>,
  1692. * prefix?: string|array<string,string>,
  1693. * name_prefix?: string,
  1694. * trailing_slash_on_root?: bool,
  1695. * controller?: string,
  1696. * methods?: string|list<string>,
  1697. * requirements?: array<string,string>,
  1698. * defaults?: array<string,mixed>,
  1699. * options?: array<string,mixed>,
  1700. * host?: string|array<string,string>,
  1701. * schemes?: string|list<string>,
  1702. * condition?: string,
  1703. * locale?: string,
  1704. * format?: string,
  1705. * utf8?: bool,
  1706. * stateless?: bool,
  1707. * }
  1708. * @psalm-type AliasConfig = array{
  1709. * alias: string,
  1710. * deprecated?: array{package:string, version:string, message?:string},
  1711. * }
  1712. * @psalm-type RoutesConfig = array{
  1713. * "when@dev"?: array<string, RouteConfig|ImportConfig|AliasConfig>,
  1714. * "when@prod"?: array<string, RouteConfig|ImportConfig|AliasConfig>,
  1715. * "when@test"?: array<string, RouteConfig|ImportConfig|AliasConfig>,
  1716. * ...<string, RouteConfig|ImportConfig|AliasConfig>
  1717. * }
  1718. */
  1719. final class Routes
  1720. {
  1721. /**
  1722. * @param RoutesConfig $config
  1723. *
  1724. * @psalm-return RoutesConfig
  1725. */
  1726. public static function config(array $config): array
  1727. {
  1728. return $config;
  1729. }
  1730. }