77
88namespace Ibexa \Bundle \Core \Imagine \Filter ;
99
10+ use Ibexa \Bundle \Core \DependencyInjection \Configuration \Parser \Image ;
1011use Ibexa \Contracts \Core \SiteAccess \ConfigResolverInterface ;
1112use Liip \ImagineBundle \Imagine \Filter \FilterConfiguration as BaseFilterConfiguration ;
1213
14+ /**
15+ * @phpstan-import-type TImageVariations from Image
16+ * @phpstan-import-type TFilters from Image
17+ * @phpstan-import-type TPostProcessors from Image
18+ */
1319class FilterConfiguration extends BaseFilterConfiguration
1420{
1521 private ConfigResolverInterface $ configResolver ;
@@ -20,10 +26,24 @@ public function setConfigResolver(ConfigResolverInterface $configResolver): void
2026 }
2127
2228 /**
23- * @return array<string, mixed>
29+ * @phpstan-return array{
30+ * cache?: string|null,
31+ * data_loader?: string|null,
32+ * reference?: string|null,
33+ * filters?: TFilters,
34+ * post_processors?: TPostProcessors,
35+ * quality?: int|null,
36+ * jpeg_quality?: int|null,
37+ * png_compression_level?: int|null,
38+ * png_compression_filter?: int|null,
39+ * format?: string|null,
40+ * animated?: bool,
41+ * default_image?: string|null
42+ * }
2443 */
2544 public function get ($ filter ): array
2645 {
46+ /** @phpstan-var TImageVariations $configuredVariations */
2747 $ configuredVariations = $ this ->configResolver ->getParameter ('image_variations ' );
2848 if (!array_key_exists ($ filter , $ configuredVariations )) {
2949 return parent ::get ($ filter );
@@ -41,11 +61,14 @@ public function get($filter): array
4161 }
4262
4363 /**
44- * @return array<string, mixed>
64+ * @phpstan- return TImageVariations
4565 */
4666 public function all (): array
4767 {
48- return $ this ->configResolver ->getParameter ('image_variations ' ) + parent ::all ();
68+ /** @phpstan-var TImageVariations $configuredVariations */
69+ $ configuredVariations = $ this ->configResolver ->getParameter ('image_variations ' );
70+
71+ return $ configuredVariations + parent ::all ();
4972 }
5073
5174 /**
@@ -54,17 +77,17 @@ public function all(): array
5477 * Both variations configured in Ibexa (SiteAccess context) and LiipImagineBundle are used.
5578 * Ibexa variations always have precedence.
5679 *
57- * @param array<string, array{filters: array<mixed>}> $configuredVariations Variations set in eZ .
80+ * @phpstan- param TImageVariations $configuredVariations Variations' set.
5881 *
59- * @return array<mixed>
82+ * @phpstan- return TFilters
6083 */
6184 private function getVariationFilters (string $ variationName , array $ configuredVariations ): array
6285 {
6386 if (!isset ($ configuredVariations [$ variationName ]['filters ' ]) && !isset ($ this ->filters [$ variationName ]['filters ' ])) {
6487 return [];
6588 }
6689
67- // Check variations configured in Ibexa config first.
90+ // Prioritize variations configured in Ibexa config
6891 return $ configuredVariations [$ variationName ]['filters ' ] ?? $ this ->filters [$ variationName ]['filters ' ];
6992 }
7093
@@ -74,9 +97,9 @@ private function getVariationFilters(string $variationName, array $configuredVar
7497 * Both variations configured in Ibexa and LiipImagineBundle are used.
7598 * Ibexa variations always have precedence.
7699 *
77- * @param array<string, array{post_processor: array<mixed>}> $configuredVariations Variations set in Ibexa .
100+ * @phpstan- param TImageVariations $configuredVariations Variations set in eZ .
78101 *
79- * @return array<mixed>
102+ * @phpstan- return TPostProcessors
80103 */
81104 private function getVariationPostProcessors (string $ variationName , array $ configuredVariations ): array
82105 {
0 commit comments