1010use Ibexa \Bundle \Core \DependencyInjection \Configuration \ParserInterface ;
1111use Ibexa \Bundle \Core \DependencyInjection \Configuration \RepositoryConfigParserInterface ;
1212use Ibexa \Bundle \Core \DependencyInjection \Configuration \SiteAccessAware \Configuration as SiteAccessConfiguration ;
13- use Ibexa \Bundle \Core \DependencyInjection \Configuration \Suggestion \Collector \SuggestionCollectorInterface ;
1413use Symfony \Component \Config \Definition \Builder \ArrayNodeDefinition ;
1514use Symfony \Component \Config \Definition \Builder \TreeBuilder ;
1615
16+ /**
17+ * @phpstan-import-type TRootNode from SiteAccessConfiguration
18+ */
1719class Configuration extends SiteAccessConfiguration
1820{
19- public const CUSTOM_TAG_ATTRIBUTE_TYPES = ['number ' , 'string ' , 'boolean ' , 'choice ' ];
20-
21- /** @var \Ibexa\Bundle\Core\DependencyInjection\Configuration\ParserInterface */
22- private $ mainSiteAccessConfigParser ;
23-
24- /** @var \Ibexa\Bundle\Core\DependencyInjection\Configuration\RepositoryConfigParserInterface */
25- private $ mainRepositoryConfigParser ;
26-
27- /** @var \Ibexa\Bundle\Core\DependencyInjection\Configuration\Suggestion\Collector\SuggestionCollectorInterface */
28- private $ suggestionCollector ;
21+ public const array CUSTOM_TAG_ATTRIBUTE_TYPES = ['number ' , 'string ' , 'boolean ' , 'choice ' ];
2922
3023 /** @var \Ibexa\Bundle\Core\SiteAccess\SiteAccessConfigurationFilter[] */
31- private $ siteAccessConfigurationFilters ;
24+ private array $ siteAccessConfigurationFilters ;
3225
3326 public function __construct (
34- ParserInterface $ mainConfigParser ,
35- RepositoryConfigParserInterface $ mainRepositoryConfigParser ,
36- SuggestionCollectorInterface $ suggestionCollector
27+ private readonly ParserInterface $ mainSiteAccessConfigParser ,
28+ private readonly RepositoryConfigParserInterface $ mainRepositoryConfigParser
3729 ) {
38- $ this ->mainSiteAccessConfigParser = $ mainConfigParser ;
39- $ this ->mainRepositoryConfigParser = $ mainRepositoryConfigParser ;
40- $ this ->suggestionCollector = $ suggestionCollector ;
4130 }
4231
43- public function setSiteAccessConfigurationFilters (array $ filters )
32+ /**
33+ * @param \Ibexa\Bundle\Core\SiteAccess\SiteAccessConfigurationFilter[] $filters
34+ */
35+ public function setSiteAccessConfigurationFilters (array $ filters ): void
4436 {
4537 $ this ->siteAccessConfigurationFilters = $ filters ;
4638 }
4739
4840 /**
4941 * Generates the configuration tree builder.
5042 *
51- * @return \Symfony\Component\Config\Definition\Builder\TreeBuilder The tree builder
43+ * @phpstan- return \Symfony\Component\Config\Definition\Builder\TreeBuilder<'array'> The tree builder
5244 */
5345 public function getConfigTreeBuilder (): TreeBuilder
5446 {
@@ -57,7 +49,7 @@ public function getConfigTreeBuilder(): TreeBuilder
5749 $ rootNode = $ treeBuilder ->getRootNode ();
5850
5951 $ this ->addRepositoriesSection ($ rootNode );
60- $ this ->addSiteaccessSection ($ rootNode );
52+ $ this ->addSiteAccessSection ($ rootNode );
6153 $ this ->addImageMagickSection ($ rootNode );
6254 $ this ->addHttpCacheSection ($ rootNode );
6355 $ this ->addRouterSection ($ rootNode );
@@ -73,7 +65,10 @@ public function getConfigTreeBuilder(): TreeBuilder
7365 return $ treeBuilder ;
7466 }
7567
76- public function addRepositoriesSection (ArrayNodeDefinition $ rootNode )
68+ /**
69+ * @phpstan-param TRootNode $rootNode
70+ */
71+ public function addRepositoriesSection (ArrayNodeDefinition $ rootNode ): void
7772 {
7873 $ repositoriesNode = $ rootNode
7974 ->children ()
@@ -153,7 +148,10 @@ static function ($v) {
153148 );
154149 }
155150
156- public function addSiteaccessSection (ArrayNodeDefinition $ rootNode )
151+ /**
152+ * @phpstan-param TRootNode $rootNode
153+ */
154+ public function addSiteAccessSection (ArrayNodeDefinition $ rootNode ): void
157155 {
158156 $ rootNode
159157 ->children ()
@@ -253,7 +251,10 @@ static function ($v) {
253251 ->end ();
254252 }
255253
256- private function addImageMagickSection (ArrayNodeDefinition $ rootNode )
254+ /**
255+ * @phpstan-param TRootNode $rootNode
256+ */
257+ private function addImageMagickSection (ArrayNodeDefinition $ rootNode ): void
257258 {
258259 $ filtersInfo =
259260<<<EOT
@@ -299,7 +300,10 @@ static function ($v): bool {
299300 ->end ();
300301 }
301302
302- private function addHttpCacheSection (ArrayNodeDefinition $ rootNode )
303+ /**
304+ * @phpstan-param TRootNode $rootNode
305+ */
306+ private function addHttpCacheSection (ArrayNodeDefinition $ rootNode ): void
303307 {
304308 $ purgeTypeInfo = <<<EOT
305309Http cache purge type.
@@ -349,7 +353,10 @@ static function (): string {
349353 ->end ();
350354 }
351355
352- private function addRouterSection (ArrayNodeDefinition $ rootNode )
356+ /**
357+ * @phpstan-param TRootNode $rootNode
358+ */
359+ private function addRouterSection (ArrayNodeDefinition $ rootNode ): void
353360 {
354361 $ nonSAAwareInfo = <<<EOT
355362Route names that are not supposed to be SiteAccess aware, i.e. Routes pointing to asset generation (like assetic).
@@ -379,9 +386,9 @@ private function addRouterSection(ArrayNodeDefinition $rootNode)
379386 /**
380387 * Defines configuration the images placeholder generation.
381388 *
382- * @param \Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition $rootNode
389+ * @phpstan- param TRootNode $rootNode
383390 */
384- private function addImagePlaceholderSection (ArrayNodeDefinition $ rootNode )
391+ private function addImagePlaceholderSection (ArrayNodeDefinition $ rootNode ): void
385392 {
386393 $ rootNode
387394 ->children ()
@@ -421,13 +428,11 @@ private function addImagePlaceholderSection(ArrayNodeDefinition $rootNode)
421428 * cleanup_method: name_of_cleanup_method
422429 * </code>
423430 *
424- * @param \Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition $rootNode
425- *
426- * @return \Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition
431+ * @phpstan-param TRootNode $rootNode
427432 */
428- private function addUrlAliasSection (ArrayNodeDefinition $ rootNode )
433+ private function addUrlAliasSection (ArrayNodeDefinition $ rootNode ): void
429434 {
430- return $ rootNode
435+ $ rootNode
431436 ->children ()
432437 ->arrayNode ('url_alias ' )
433438 ->children ()
@@ -462,13 +467,11 @@ private function addUrlAliasSection(ArrayNodeDefinition $rootNode)
462467 * enabled: true
463468 * </code>
464469 *
465- * @param \Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition $rootNode
466- *
467- * @return \Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition
470+ * @phpstan-param TRootNode $rootNode
468471 */
469- private function addUrlWildcardsSection ($ rootNode ): ArrayNodeDefinition
472+ private function addUrlWildcardsSection (ArrayNodeDefinition $ rootNode ): void
470473 {
471- return $ rootNode
474+ $ rootNode
472475 ->children ()
473476 ->arrayNode ('url_wildcards ' )
474477 ->children ()
@@ -497,13 +500,11 @@ private function addUrlWildcardsSection($rootNode): ArrayNodeDefinition
497500 *
498501 * </code>
499502 *
500- * @param \Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition $rootNode
501- *
502- * @return \Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition
503+ * @phpstan-param TRootNode $rootNode
503504 */
504- private function addOrmSection ($ rootNode ): ArrayNodeDefinition
505+ private function addOrmSection (ArrayNodeDefinition $ rootNode ): void
505506 {
506- return $ rootNode
507+ $ rootNode
507508 ->children ()
508509 ->arrayNode ('orm ' )
509510 ->children ()
@@ -544,11 +545,11 @@ private function addOrmSection($rootNode): ArrayNodeDefinition
544545 *
545546 * </code>
546547 *
547- * @param \Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition $rootNode
548+ * @phpstan- param TRootNode $rootNode
548549 */
549- private function addUITranslationsSection ($ rootNode ): ArrayNodeDefinition
550+ private function addUITranslationsSection (ArrayNodeDefinition $ rootNode ): void
550551 {
551- return $ rootNode
552+ $ rootNode
552553 ->children ()
553554 ->arrayNode ('ui ' )
554555 ->children ()
0 commit comments