[TASK] Allow DI for extbase validators
With #92238, it has been postulated that Extbase validators should not be dependency injection aware. Further places following this idea have been done in v11 with #94451 and #94384. A final breaking ReST file has been added with #95026. All of that is pretty unfortunate and there is simply no reason that Extbase validators can not get dependencies injected, no matter if they're not singletons. This patch specifically targets v11 to allow dependency injection in Extbase validators again if extension authors really need this, and don't want to stick to manual dependency retrieval as outlined in #95026. This patch should basically mitigate issues for extension upgrades and paves the way for a more solid general solution in v12. Extension authors have a more smooth upgrade path, especially when supporting two core versions at the same time. The v12 version of this patch is identical with v11 for now - The breaking interface change, adapting all core validators, and declaring core validators 'final' in v12 will be done with a dedicated v12 patch as soon as this v11 tailored version has been aligned on. Note all of this is pretty hairy and the solution outlined with the patch for v11 hopefully gives the maximum amount of compatibility without being breaking again, with giving extension authors additional options, and having v12 options to further mitigate this complex mess. Resolves: #96332 Related: #92238 Related: #95026 Related: #94451 Related: #94384 Releases: main, 11.5 Change-Id: I5fea15c9b73c59e5d7c3212a0842bc9a3413d2a1 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/73630 Tested-by:core-ci <typo3@b13.com> Tested-by:
Benni Mack <benni@typo3.org> Tested-by:
Oliver Bartsch <bo@cedev.de> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
Benni Mack <benni@typo3.org> Reviewed-by:
Oliver Bartsch <bo@cedev.de> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch>
Showing
- Build/phpstan/phpstan-baseline.neon 20 additions, 5 deletionsBuild/phpstan/phpstan-baseline.neon
- typo3/sysext/core/Documentation/Changelog/11.0/Breaking-92238-ServiceInjectionInExtbaseValidators.rst 9 additions, 2 deletions....0/Breaking-92238-ServiceInjectionInExtbaseValidators.rst
- typo3/sysext/core/Documentation/Changelog/11.5.x/Important-96332-ExtbaseValidatorsCanUseDependencyInjection.rst 143 additions, 0 deletions...tant-96332-ExtbaseValidatorsCanUseDependencyInjection.rst
- typo3/sysext/extbase/Classes/Mvc/Controller/ActionController.php 18 additions, 15 deletions...ysext/extbase/Classes/Mvc/Controller/ActionController.php
- typo3/sysext/extbase/Classes/Validation/Validator/AbstractCompositeValidator.php 35 additions, 27 deletions...asses/Validation/Validator/AbstractCompositeValidator.php
- typo3/sysext/extbase/Classes/Validation/Validator/AbstractValidator.php 34 additions, 26 deletions...xtbase/Classes/Validation/Validator/AbstractValidator.php
- typo3/sysext/extbase/Classes/Validation/Validator/ValidatorInterface.php 16 additions, 0 deletions...tbase/Classes/Validation/Validator/ValidatorInterface.php
- typo3/sysext/extbase/Classes/Validation/ValidatorResolver.php 9 additions, 1 deletion...3/sysext/extbase/Classes/Validation/ValidatorResolver.php
- typo3/sysext/extbase/Tests/Fixture/ValidatorThatDoesNotImplementValidatorInterfaceValidator.php 0 additions, 25 deletions...idatorThatDoesNotImplementValidatorInterfaceValidator.php
- typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/test_validators/Classes/Domain/Model/AnotherModel.php 1 addition, 1 deletion...ons/test_validators/Classes/Domain/Model/AnotherModel.php
- typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/test_validators/Classes/Domain/Model/Model.php 3 additions, 3 deletions...Extensions/test_validators/Classes/Domain/Model/Model.php
- typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/test_validators/Classes/Validation/Validator/CustomNotInjectableValidator.php 8 additions, 3 deletions...ses/Validation/Validator/CustomNotInjectableValidator.php
- typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/test_validators/Classes/Validation/Validator/CustomValidator.php 57 additions, 0 deletions...lidators/Classes/Validation/Validator/CustomValidator.php
- typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/test_validators/Configuration/Services.yaml 12 additions, 0 deletions...es/Extensions/test_validators/Configuration/Services.yaml
- typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/test_validators/ext_emconf.php 21 additions, 0 deletions...tional/Fixtures/Extensions/test_validators/ext_emconf.php
- typo3/sysext/extbase/Tests/Functional/Validation/ValidatorResolverTest.php 36 additions, 15 deletions...ase/Tests/Functional/Validation/ValidatorResolverTest.php
- typo3/sysext/extbase/Tests/Unit/Validation/Fixtures/Validation/Validator/CustomValidator.php 1 addition, 4 deletions...idation/Fixtures/Validation/Validator/CustomValidator.php
- typo3/sysext/extbase/Tests/Unit/Validation/Fixtures/Validation/Validator/CustomValidatorThatDoesNotImplementValidatorInterfaceValidator.php 1 addition, 4 deletions...idatorThatDoesNotImplementValidatorInterfaceValidator.php
- typo3/sysext/extbase/Tests/Unit/Validation/ValidatorClassNameResolverTest.php 24 additions, 24 deletions.../Tests/Unit/Validation/ValidatorClassNameResolverTest.php
- typo3/sysext/form/Classes/Domain/Model/Renderable/AbstractRenderable.php 9 additions, 2 deletions...rm/Classes/Domain/Model/Renderable/AbstractRenderable.php
Please register or sign in to comment