Skip to content

Commit fd7fb2d

Browse files
authored
IBX-9727: Refactored Form Types and limitation-related code to be aligned with PHP8 (#1694)
* IBX-9727: Refactored Form Types and limitation-related code to be aligned with PHP8 * cr remarks * cr remarks 2
1 parent a3ddff4 commit fd7fb2d

File tree

173 files changed

+1026
-2170
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

173 files changed

+1026
-2170
lines changed

phpstan-baseline.neon

Lines changed: 36 additions & 1188 deletions
Large diffs are not rendered by default.

src/bundle/Controller/ContentViewController.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,10 +234,10 @@ private function createContentEditForm(
234234
'choice_loader' => new ContentEditTranslationChoiceLoader(
235235
$this->languageService,
236236
$this->permissionResolver,
237-
$contentInfo,
238237
$this->lookupLimitationsTransformer,
239238
$languageCodes,
240239
$this->locationService,
240+
$contentInfo,
241241
$location
242242
),
243243
]

src/lib/Form/Factory/FormFactory.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ public function createContentTypeGroup(
203203
}
204204

205205
/**
206-
* @phpstan-return \Symfony\Component\Form\FormInterface<ContentTypeGroupUpdateData>
206+
* @phpstan-return \Symfony\Component\Form\FormInterface<\Ibexa\AdminUi\Form\Data\ContentTypeGroup\ContentTypeGroupUpdateData|null>
207207
*/
208208
public function updateContentTypeGroup(
209209
ContentTypeGroup $group,
@@ -216,7 +216,7 @@ public function updateContentTypeGroup(
216216
}
217217

218218
/**
219-
* @return \Symfony\Component\Form\FormInterface<\Ibexa\AdminUi\Form\Data\ContentTypeGroup\ContentTypeGroupDeleteData>
219+
* @return \Symfony\Component\Form\FormInterface<\Ibexa\AdminUi\Form\Data\ContentTypeGroup\ContentTypeGroupDeleteData|null>
220220
*/
221221
public function deleteContentTypeGroup(
222222
ContentTypeGroup $group,

src/lib/Form/SubmitHandler.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ public function __construct(
4141
* Handles form errors (NotificationHandler:warning).
4242
* Handles business logic exceptions (NotificationHandler:error).
4343
*
44+
* @param \Symfony\Component\Form\FormInterface<mixed> $form
4445
* @param callable $handler
4546
*/
4647
public function handle(FormInterface $form, callable $handler): ?Response
@@ -116,7 +117,7 @@ public function handleAjax(FormInterface $form, callable $handler): JsonResponse
116117
}
117118
} else {
118119
$errors = [];
119-
foreach ($form->getErrors(true, true) as $formError) {
120+
foreach ($form->getErrors(true) as $formError) {
120121
$errors[] = $formError->getMessage();
121122
}
122123

src/lib/Form/Type/Bookmark/BookmarkRemoveType.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,10 @@
1414
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
1515
use Symfony\Component\Form\FormBuilderInterface;
1616

17-
class BookmarkRemoveType extends AbstractType
17+
/**
18+
* @extends \Symfony\Component\Form\AbstractType<mixed>
19+
*/
20+
final class BookmarkRemoveType extends AbstractType
1821
{
1922
public function buildForm(FormBuilderInterface $builder, array $options): void
2023
{

src/lib/Form/Type/ChoiceList/Loader/AvailableTranslationLanguageChoiceLoader.php

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,20 +11,15 @@
1111
use Ibexa\Contracts\Core\Repository\LanguageService;
1212
use Ibexa\Contracts\Core\Repository\Values\Content\Language;
1313

14-
class AvailableTranslationLanguageChoiceLoader extends BaseChoiceLoader
14+
final class AvailableTranslationLanguageChoiceLoader extends BaseChoiceLoader
1515
{
16-
protected LanguageService $languageService;
17-
18-
/** @var string[] */
19-
protected array $languageCodes;
20-
2116
/**
2217
* @param string[] $languageCodes
2318
*/
24-
public function __construct(LanguageService $languageService, array $languageCodes)
25-
{
26-
$this->languageService = $languageService;
27-
$this->languageCodes = $languageCodes;
19+
public function __construct(
20+
private readonly LanguageService $languageService,
21+
private readonly array $languageCodes
22+
) {
2823
}
2924

3025
/**
@@ -35,7 +30,8 @@ public function getChoiceList(): array
3530
return array_filter(
3631
iterator_to_array($this->languageService->loadLanguages()),
3732
function (Language $language): bool {
38-
return $language->enabled && !in_array($language->languageCode, $this->languageCodes, true);
33+
return $language->isEnabled()
34+
&& !in_array($language->getLanguageCode(), $this->languageCodes, true);
3935
}
4036
);
4137
}

src/lib/Form/Type/ChoiceList/Loader/BaseTranslationLanguageChoiceLoader.php

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,13 @@
1313

1414
class BaseTranslationLanguageChoiceLoader extends BaseChoiceLoader
1515
{
16-
protected LanguageService $languageService;
17-
18-
/** @var string[] */
19-
protected array $languageCodes;
20-
2116
/**
2217
* @param string[] $languageCodes
2318
*/
24-
public function __construct(LanguageService $languageService, array $languageCodes)
25-
{
26-
$this->languageService = $languageService;
27-
$this->languageCodes = $languageCodes;
19+
public function __construct(
20+
protected LanguageService $languageService,
21+
protected array $languageCodes
22+
) {
2823
}
2924

3025
/**
@@ -35,7 +30,8 @@ public function getChoiceList(): array
3530
return array_filter(
3631
iterator_to_array($this->languageService->loadLanguages()),
3732
function (Language $language): bool {
38-
return $language->enabled && in_array($language->languageCode, $this->languageCodes, true);
33+
return $language->isEnabled()
34+
&& in_array($language->getLanguageCode(), $this->languageCodes, true);
3935
}
4036
);
4137
}

src/lib/Form/Type/ChoiceList/Loader/ConfiguredLanguagesChoiceLoader.php

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,10 @@
1616

1717
class ConfiguredLanguagesChoiceLoader implements ChoiceLoaderInterface
1818
{
19-
private LanguageService $languageService;
20-
21-
private ConfigResolverInterface $configResolver;
22-
23-
public function __construct(LanguageService $languageService, ConfigResolverInterface $configResolver)
24-
{
25-
$this->languageService = $languageService;
26-
$this->configResolver = $configResolver;
19+
public function __construct(
20+
private readonly LanguageService $languageService,
21+
private readonly ConfigResolverInterface $configResolver
22+
) {
2723
}
2824

2925
/**
@@ -80,7 +76,7 @@ private function getPriorityOrderedLanguages(): array
8076
$languagesAssoc = [];
8177

8278
foreach ($languages as $language) {
83-
$languagesAssoc[$language->languageCode] = $language;
79+
$languagesAssoc[$language->getLanguageCode()] = $language;
8480
}
8581

8682
$orderedLanguages = [];

src/lib/Form/Type/ChoiceList/Loader/ContentCreateContentTypeChoiceLoader.php

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,23 +16,17 @@
1616
use Symfony\Component\Form\ChoiceList\Loader\ChoiceLoaderInterface;
1717
use Symfony\Contracts\EventDispatcher\EventDispatcherInterface;
1818

19-
class ContentCreateContentTypeChoiceLoader implements ChoiceLoaderInterface
19+
final class ContentCreateContentTypeChoiceLoader implements ChoiceLoaderInterface
2020
{
21-
private ContentTypeChoiceLoader $contentTypeChoiceLoader;
22-
23-
private EventDispatcherInterface $eventDispatcher;
24-
2521
/** @var array<int> */
2622
private array $restrictedContentTypesIds;
2723

2824
private ?Location $targetLocation = null;
2925

3026
public function __construct(
31-
ContentTypeChoiceLoader $contentTypeChoiceLoader,
32-
EventDispatcherInterface $eventDispatcher
27+
private readonly ContentTypeChoiceLoader $contentTypeChoiceLoader,
28+
private readonly EventDispatcherInterface $eventDispatcher
3329
) {
34-
$this->contentTypeChoiceLoader = $contentTypeChoiceLoader;
35-
$this->eventDispatcher = $eventDispatcher;
3630
}
3731

3832
/**
@@ -74,7 +68,7 @@ public function loadChoiceList(?callable $value = null): ChoiceListInterface
7468

7569
foreach ($contentTypesGroups as $group => $contentTypes) {
7670
$contentTypesGroups[$group] = array_filter($contentTypes, function (ContentType $contentType): bool {
77-
return \in_array($contentType->id, $this->restrictedContentTypesIds, true);
71+
return in_array($contentType->id, $this->restrictedContentTypesIds, true);
7872
});
7973
}
8074

src/lib/Form/Type/ChoiceList/Loader/ContentCreateLanguageChoiceLoader.php

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9,27 +9,19 @@
99
namespace Ibexa\AdminUi\Form\Type\ChoiceList\Loader;
1010

1111
use Ibexa\Contracts\Core\Repository\Values\Content\Language;
12-
use function in_array;
1312
use Symfony\Component\Form\ChoiceList\ArrayChoiceList;
1413
use Symfony\Component\Form\ChoiceList\ChoiceListInterface;
1514
use Symfony\Component\Form\ChoiceList\Loader\ChoiceLoaderInterface;
1615

17-
class ContentCreateLanguageChoiceLoader implements ChoiceLoaderInterface
16+
final readonly class ContentCreateLanguageChoiceLoader implements ChoiceLoaderInterface
1817
{
19-
private LanguageChoiceLoader $languageChoiceLoader;
20-
21-
/** @var string[] */
22-
private array $restrictedLanguagesCodes;
23-
2418
/**
25-
* @param array<string> $restrictedLanguagesCodes
19+
* @param string[] $restrictedLanguagesCodes
2620
*/
2721
public function __construct(
28-
LanguageChoiceLoader $languageChoiceLoader,
29-
array $restrictedLanguagesCodes
22+
private LanguageChoiceLoader $languageChoiceLoader,
23+
private array $restrictedLanguagesCodes
3024
) {
31-
$this->languageChoiceLoader = $languageChoiceLoader;
32-
$this->restrictedLanguagesCodes = $restrictedLanguagesCodes;
3325
}
3426

3527
public function loadChoiceList(?callable $value = null): ChoiceListInterface
@@ -41,7 +33,7 @@ public function loadChoiceList(?callable $value = null): ChoiceListInterface
4133
}
4234

4335
$languages = array_filter($languages, function (Language $language): bool {
44-
return in_array($language->languageCode, $this->restrictedLanguagesCodes, true);
36+
return in_array($language->getLanguageCode(), $this->restrictedLanguagesCodes, true);
4537
});
4638

4739
return new ArrayChoiceList($languages, $value);

0 commit comments

Comments
 (0)