Skip to content
This repository has been archived by the owner on Mar 1, 2023. It is now read-only.

Commit

Permalink
[!!!][TASK] Move field validation classes namespace
Browse files Browse the repository at this point in the history
The classes used for the field validation have been moved into the
`Validation/Field` folder.

This is an effort to clean up the files structure and make the whole
application architecture more consistent.
  • Loading branch information
romm committed Aug 25, 2017
1 parent 3ca5335 commit 1f86909
Show file tree
Hide file tree
Showing 29 changed files with 60 additions and 47 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
use Romm\Formz\Form\Definition\Field\Validation\Validator;
use Romm\Formz\Service\ArrayService;
use Romm\Formz\Service\ValidatorService;
use Romm\Formz\Validation\Validator\AbstractValidator;
use Romm\Formz\Validation\Field\AbstractFieldValidator;
use TYPO3\CMS\Core\Utility\GeneralUtility;

/**
Expand Down Expand Up @@ -81,7 +81,7 @@ protected function processField($field)
foreach ($field->getValidators() as $validator) {
$validatorClassName = $validator->getClassName();

if (in_array(AbstractValidator::class, class_parents($validatorClassName))) {
if (in_array(AbstractFieldValidator::class, class_parents($validatorClassName))) {
$javaScriptCode[] = (string)$this->getInlineJavaScriptValidatorCode($field, $validator);
}
}
Expand Down Expand Up @@ -175,8 +175,8 @@ public function getJavaScriptValidationFiles()
foreach ($field->getValidators() as $validator) {
$validatorClassName = $validator->getClassName();

if (in_array(AbstractValidator::class, class_parents($validatorClassName))) {
/** @var AbstractValidator $validatorClassName */
if (in_array(AbstractFieldValidator::class, class_parents($validatorClassName))) {
/** @var AbstractFieldValidator $validatorClassName */
$this->javaScriptValidationFiles = array_merge($this->javaScriptValidationFiles, $validatorClassName::getJavaScriptValidationFiles());
}
}
Expand Down
2 changes: 1 addition & 1 deletion Classes/Controller/AjaxValidationController.php
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
use Romm\Formz\Service\ContextService;
use Romm\Formz\Service\ExtensionService;
use Romm\Formz\Service\MessageService;
use Romm\Formz\Validation\DataObject\ValidatorDataObject;
use Romm\Formz\Validation\Field\DataObject\ValidatorDataObject;
use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Extbase\Error\Error;
use TYPO3\CMS\Extbase\Mvc\Controller\ActionController;
Expand Down
8 changes: 4 additions & 4 deletions Classes/Exceptions/EntryNotFoundException.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
use Romm\Formz\Form\FormInterface;
use Romm\Formz\Form\FormObject\FormObject;
use Romm\Formz\Form\FormObject\FormObjectFactory;
use Romm\Formz\Validation\Validator\AbstractValidator;
use Romm\Formz\Validation\Field\AbstractFieldValidator;
use Romm\Formz\ViewHelpers\ClassViewHelper;
use Romm\Formz\ViewHelpers\FieldViewHelper;
use Romm\Formz\ViewHelpers\FormatMessageViewHelper;
Expand Down Expand Up @@ -337,11 +337,11 @@ final public static function ajaxControllerFieldNotFound($fieldName, FormObject
/**
* @code 1455272659
*
* @param string $key
* @param AbstractValidator $validator
* @param string $key
* @param AbstractFieldValidator $validator
* @return self
*/
final public static function errorKeyNotFoundForValidator($key, AbstractValidator $validator)
final public static function errorKeyNotFoundForValidator($key, AbstractFieldValidator $validator)
{
/** @var self $exception */
$exception = self::getNewExceptionInstance(
Expand Down
4 changes: 2 additions & 2 deletions Classes/Service/ValidatorService.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

use Romm\Formz\Form\Definition\Field\Validation\Validator;
use Romm\Formz\Service\Traits\SelfInstantiateTrait;
use Romm\Formz\Validation\Validator\AbstractValidator as FormzAbstractValidator;
use Romm\Formz\Validation\Field\AbstractFieldValidator;
use TYPO3\CMS\Core\SingletonInterface;
use TYPO3\CMS\Core\Utility\ArrayUtility;
use TYPO3\CMS\Extbase\Validation\Validator\AbstractValidator;
Expand Down Expand Up @@ -87,7 +87,7 @@ protected function getValidatorData(Validator $validator)
'acceptsEmptyValues' => $validatorProperties['acceptsEmptyValues']
];

if (in_array(FormzAbstractValidator::class, class_parents($validatorClassName))) {
if (in_array(AbstractFieldValidator::class, class_parents($validatorClassName))) {
$validatorData['formzValidator'] = true;
$validatorData['supportedMessages'] = $validatorProperties['supportedMessages'];
$validatorData['supportsAllMessages'] = $validatorProperties['supportsAllMessages'];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
* http://www.gnu.org/licenses/gpl-3.0.html
*/

namespace Romm\Formz\Validation\Validator;
namespace Romm\Formz\Validation\Field;

use Romm\Formz\Error\Error;
use Romm\Formz\Error\Notice;
Expand All @@ -20,9 +20,10 @@
use Romm\Formz\Form\FormInterface;
use Romm\Formz\Service\MessageService;
use Romm\Formz\Service\ValidatorService;
use Romm\Formz\Validation\DataObject\ValidatorDataObject;
use Romm\Formz\Validation\Field\DataObject\ValidatorDataObject;
use TYPO3\CMS\Extbase\Validation\Validator\AbstractValidator;

abstract class AbstractValidator extends \TYPO3\CMS\Extbase\Validation\Validator\AbstractValidator
abstract class AbstractFieldValidator extends AbstractValidator
{

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
* http://www.gnu.org/licenses/gpl-3.0.html
*/

namespace Romm\Formz\Validation\DataObject;
namespace Romm\Formz\Validation\Field\DataObject;

use Romm\Formz\Form\Definition\Field\Validation\Validator;
use Romm\Formz\Form\FormObject\FormObject;
Expand Down
3 changes: 2 additions & 1 deletion Classes/Validation/Validator/BetweenNumbersValidator.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,10 @@

namespace Romm\Formz\Validation\Validator;

use Romm\Formz\Validation\Field\AbstractFieldValidator;
use TYPO3\CMS\Core\Utility\MathUtility;

class BetweenNumbersValidator extends AbstractValidator
class BetweenNumbersValidator extends AbstractFieldValidator
{
const OPTION_MINIMUM = 'minimum';
const OPTION_MAXIMUM = 'maximum';
Expand Down
3 changes: 2 additions & 1 deletion Classes/Validation/Validator/ContainsValuesValidator.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,10 @@

namespace Romm\Formz\Validation\Validator;

use Romm\Formz\Validation\Field\AbstractFieldValidator;
use TYPO3\CMS\Core\Utility\GeneralUtility;

class ContainsValuesValidator extends AbstractValidator
class ContainsValuesValidator extends AbstractFieldValidator
{
const OPTION_VALUES = 'values';

Expand Down
3 changes: 2 additions & 1 deletion Classes/Validation/Validator/EmailValidator.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,10 @@

namespace Romm\Formz\Validation\Validator;

use Romm\Formz\Validation\Field\AbstractFieldValidator;
use TYPO3\CMS\Core\Utility\GeneralUtility;

class EmailValidator extends AbstractValidator
class EmailValidator extends AbstractFieldValidator
{
const MESSAGE_DEFAULT = 'default';

Expand Down
3 changes: 2 additions & 1 deletion Classes/Validation/Validator/EqualsToFieldValidator.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,10 @@
namespace Romm\Formz\Validation\Validator;

use Romm\Formz\Exceptions\EntryNotFoundException;
use Romm\Formz\Validation\Field\AbstractFieldValidator;
use TYPO3\CMS\Extbase\Reflection\ObjectAccess;

class EqualsToFieldValidator extends AbstractValidator
class EqualsToFieldValidator extends AbstractFieldValidator
{
const OPTION_FIELD = 'field';

Expand Down
6 changes: 3 additions & 3 deletions Classes/Validation/Validator/Form/FormValidatorExecutor.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@
use Romm\Formz\Form\Definition\Field\Validation\Validator;
use Romm\Formz\Form\FormObject\FormObject;
use Romm\Formz\Service\MessageService;
use Romm\Formz\Validation\DataObject\ValidatorDataObject;
use Romm\Formz\Validation\Validator\AbstractValidator;
use Romm\Formz\Validation\Field\AbstractFieldValidator;
use Romm\Formz\Validation\Field\DataObject\ValidatorDataObject;
use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Extbase\Error\Result;
use TYPO3\CMS\Extbase\Reflection\ObjectAccess;
Expand Down Expand Up @@ -222,7 +222,7 @@ protected function processFieldValidator(Field $field, Validator $validator)
$validatorResult = $validatorInstance->validate($fieldValue);
$validatorResult = MessageService::get()->sanitizeValidatorResult($validatorResult, $validator->getName());

if ($validatorInstance instanceof AbstractValidator
if ($validatorInstance instanceof AbstractFieldValidator
&& false === empty($validationData = $validatorInstance->getValidationData())
) {
$this->validationData[$fieldName] = ($this->validationData[$fieldName]) ?: [];
Expand Down
3 changes: 2 additions & 1 deletion Classes/Validation/Validator/IsIntegerValidator.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,10 @@

namespace Romm\Formz\Validation\Validator;

use Romm\Formz\Validation\Field\AbstractFieldValidator;
use TYPO3\CMS\Core\Utility\MathUtility;

class IsIntegerValidator extends AbstractValidator
class IsIntegerValidator extends AbstractFieldValidator
{
const MESSAGE_DEFAULT = 'default';

Expand Down
3 changes: 2 additions & 1 deletion Classes/Validation/Validator/NumberLengthValidator.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,10 @@

namespace Romm\Formz\Validation\Validator;

use Romm\Formz\Validation\Field\AbstractFieldValidator;
use TYPO3\CMS\Core\Utility\MathUtility;

class NumberLengthValidator extends AbstractValidator
class NumberLengthValidator extends AbstractFieldValidator
{
const OPTION_MINIMUM = 'minimum';
const OPTION_MAXIMUM = 'maximum';
Expand Down
4 changes: 3 additions & 1 deletion Classes/Validation/Validator/RegexValidator.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,9 @@

namespace Romm\Formz\Validation\Validator;

class RegexValidator extends AbstractValidator
use Romm\Formz\Validation\Field\AbstractFieldValidator;

class RegexValidator extends AbstractFieldValidator
{
const MESSAGE_DEFAULT = 'default';

Expand Down
4 changes: 3 additions & 1 deletion Classes/Validation/Validator/RequiredValidator.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,9 @@

namespace Romm\Formz\Validation\Validator;

class RequiredValidator extends AbstractValidator
use Romm\Formz\Validation\Field\AbstractFieldValidator;

class RequiredValidator extends AbstractFieldValidator
{
const MESSAGE_DEFAULT = 'default';

Expand Down
4 changes: 3 additions & 1 deletion Classes/Validation/Validator/StringLengthValidator.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,9 @@

namespace Romm\Formz\Validation\Validator;

class StringLengthValidator extends AbstractValidator
use Romm\Formz\Validation\Field\AbstractFieldValidator;

class StringLengthValidator extends AbstractFieldValidator
{
const OPTION_MINIMUM = 'minimum';
const OPTION_MAXIMUM = 'maximum';
Expand Down
2 changes: 1 addition & 1 deletion Documentation/04-DeveloperManual/PHP/Index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ To create a form, you will have to use the following classes:

- :ref:`developerManual-php-validator`

:php:`Romm\Formz\Validation\Validator\AbstractValidator` — must be inherited by your validators.
:php:`Romm\Formz\Validation\Field\AbstractFieldValidator` — must be inherited by your validators.

- :ref:`developerManual-php-behaviour`

Expand Down
4 changes: 2 additions & 2 deletions Documentation/04-DeveloperManual/PHP/Validator.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Validators are used to check the values of the fields submitted with a form. The

To configure the usable validators in the forms configuration, read the chapter “:ref:`usersManual-typoScript-configurationValidators`”.

You have the possibility to create your own validators depending on your needs; make sure that they inherit ``Romm\Formz\Validation\Validator\AbstractValidator``, and use correctly the functions from the API.
You have the possibility to create your own validators depending on your needs; make sure that they inherit ``Romm\Formz\Validation\Field\AbstractFieldValidator``, and use correctly the functions from the API.

API
^^^
Expand Down Expand Up @@ -214,7 +214,7 @@ You can find below a validator example.
<?php
namespace Romm\Formz\Validation\Validator;
use Romm\Formz\Validation\Validator\AbstractValidator;
use Romm\Formz\Validation\Field\AbstractFieldValidator;
class ContainsValuesValidator extends AbstractValidator {
/**
Expand Down
2 changes: 1 addition & 1 deletion Documentation/07-CheatSheets/PhpCheatSheet.rst
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ Form validator
Validators
----------

* It is advised to use validators which inherit :php:`Romm\Formz\Validation\Validator\AbstractValidator`; the main reason for that is to be able to use the property :php:`$javaScriptValidationFiles` (see line 4). Otherwise, basic Extbase validators work;
* It is advised to use validators which inherit :php:`Romm\Formz\Validation\Field\AbstractFieldValidator`; the main reason for that is to be able to use the property :php:`$javaScriptValidationFiles` (see line 4). Otherwise, basic Extbase validators work;
* Can associate JavaScript files with the property :php:`$javaScriptValidationFiles`: these files contain a code adaptation of the validator in JavaScript (see line 10);
* Can define messages which may be overridden in TypoScript with the property :php:`$supportedMessages` (see line 25);
* Also contains all basic Extbase validators features, like the property :php:`$supportedOptions` (see line 17).
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ Pour installer un formulaire, vous serez amené à utiliser les classes suivante

- :ref:`developerManual-php-validator`

:php:`Romm\Formz\Validation\Validator\AbstractValidator` — devra être héritée par vos validateurs.
:php:`Romm\Formz\Validation\Field\AbstractFieldValidator` — devra être héritée par vos validateurs.

- :ref:`developerManual-php-behaviour`

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Les validateurs sont utilisés pour vérifier la valeur des champs envoyés à l

Pour configurer les validateurs utilisables dans la configuration des formulaires, consultez le chapitre « :ref:`usersManual-typoScript-configurationValidators` ».

Vous avez la possibilité de créer vos propres validateurs selon vos besoins ; veillez à ce qu'ils aient comme parent ``Romm\Formz\Validation\Validator\AbstractValidator``, et à utiliser correctement les fonctions de l'API.
Vous avez la possibilité de créer vos propres validateurs selon vos besoins ; veillez à ce qu'ils aient comme parent ``Romm\Formz\Validation\Field\AbstractFieldValidator``, et à utiliser correctement les fonctions de l'API.

API
^^^
Expand Down Expand Up @@ -214,7 +214,7 @@ Vous retrouverez ci-dessous un exemple de validateur.
<?php
namespace Romm\Formz\Validation\Validator;
use Romm\Formz\Validation\Validator\AbstractValidator;
use Romm\Formz\Validation\Field\AbstractFieldValidator;
class ContainsValuesValidator extends AbstractValidator {
/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ Validateur de formulaire
Validateurs
-----------

* Il est conseillé d'utiliser des validateurs qui héritent de :php:`Romm\Formz\Validation\Validator\AbstractValidator` ; la principale raison est l'utilisation de la propriété :php:`$javaScriptValidationFiles` (cf. ligne 4). Sinon les validateurs « classiques » d'Extbase fonctionnent ;
* Il est conseillé d'utiliser des validateurs qui héritent de :php:`Romm\Formz\Validation\Field\AbstractFieldValidator` ; la principale raison est l'utilisation de la propriété :php:`$javaScriptValidationFiles` (cf. ligne 4). Sinon les validateurs « classiques » d'Extbase fonctionnent ;
* Peut associer des fichiers JavaScript avec la propriété :php:`$javaScriptValidationFiles` : ces fichiers contiendront une adaptation du code de validation en JavaScript (cf. ligne 10) ;
* Peut définir des messages qui pourront être surchargés en TypoScript grâce à la propriété :php:`$supportedMessages` (cf. ligne 25) ;
* Contient également toutes les fonctionnalités des validateurs « classiques » d'Extbase, comme la propriété :php:`$supportedOptions` (cf. ligne 17).
Expand Down
4 changes: 2 additions & 2 deletions Tests/Fixture/Validation/Validator/DummyValidator.php
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<?php
namespace Romm\Formz\Tests\Fixture\Validation\Validator;

use Romm\Formz\Validation\Validator\AbstractValidator;
use Romm\Formz\Validation\Field\AbstractFieldValidator;

class DummyValidator extends AbstractValidator
class DummyValidator extends AbstractFieldValidator
{
const MESSAGE_1 = 'message1';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<?php
namespace Romm\Formz\Tests\Fixture\Validation\Validator;

use Romm\Formz\Validation\Validator\AbstractValidator;
use Romm\Formz\Validation\Field\AbstractFieldValidator;

class ExceptionDummyValidator extends AbstractValidator
class ExceptionDummyValidator extends AbstractFieldValidator
{
/**
* @param mixed $value
Expand Down
4 changes: 2 additions & 2 deletions Tests/Fixture/Validation/Validator/MessagesValidator.php
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<?php
namespace Romm\Formz\Tests\Fixture\Validation\Validator;

use Romm\Formz\Validation\Validator\AbstractValidator;
use Romm\Formz\Validation\Field\AbstractFieldValidator;

class MessagesValidator extends AbstractValidator
class MessagesValidator extends AbstractFieldValidator
{
const MESSAGE_1 = 'message1';
const MESSAGE_2 = 'message2';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public function checkLocalizationIsInitializedCorrectly()
$field = $assetHandlerFactory->getFormObject()->getDefinition()->getField('foo');
$validator = $field->addValidator('validation-name', RequiredValidator::class);

/** @var LocalizationJavaScriptAssetHandler|\PHPUnit_Framework_MockObject_MockObject $assetHandler */
/** @var LocalizationJavaScriptAssetHandler|\PHPUnit_Framework_MockObject_MockObject $assetHandler */
$assetHandler = $this->getMockBuilder(LocalizationJavaScriptAssetHandler::class)
->setMethods(['handleRealTranslations', 'handleTranslationsBinding'])
->setConstructorArgs([$assetHandlerFactory])
Expand Down
2 changes: 1 addition & 1 deletion Tests/Unit/Validation/Validator/AbstractValidatorTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
use Romm\Formz\Tests\Fixture\Form\DefaultForm;
use Romm\Formz\Tests\Fixture\Validation\Validator\DummyValidator;
use Romm\Formz\Tests\Unit\AbstractUnitTest;
use Romm\Formz\Validation\DataObject\ValidatorDataObject;
use Romm\Formz\Validation\Field\DataObject\ValidatorDataObject;
use TYPO3\CMS\Extbase\Error\Result;

class AbstractValidatorTest extends AbstractUnitTest
Expand Down
6 changes: 3 additions & 3 deletions Tests/Unit/Validation/Validator/AbstractValidatorUnitTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
use Romm\Formz\Tests\Fixture\Form\DefaultForm;
use Romm\Formz\Tests\Fixture\Validation\Validator\DummyValidator;
use Romm\Formz\Tests\Unit\AbstractUnitTest;
use Romm\Formz\Validation\DataObject\ValidatorDataObject;
use Romm\Formz\Validation\Validator\AbstractValidator;
use Romm\Formz\Validation\Field\AbstractFieldValidator;
use Romm\Formz\Validation\Field\DataObject\ValidatorDataObject;
use TYPO3\CMS\Extbase\Error\Result;

abstract class AbstractValidatorUnitTest extends AbstractUnitTest
Expand Down Expand Up @@ -64,7 +64,7 @@ protected function validateValidator($value, array $options, array $errors = [],
* @param string $className
* @param array $options
* @param array $methods
* @return \PHPUnit_Framework_MockObject_MockObject|AbstractValidator
* @return \PHPUnit_Framework_MockObject_MockObject|AbstractFieldValidator
*/
protected function getValidatorInstance($className, array $options = [], array $methods = [])
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
use Romm\Formz\Form\FormObject\FormObject;
use Romm\Formz\Tests\Fixture\Validation\Validator\DummyValidator;
use Romm\Formz\Tests\Unit\AbstractUnitTest;
use Romm\Formz\Validation\DataObject\ValidatorDataObject;
use Romm\Formz\Validation\Field\DataObject\ValidatorDataObject;

class ValidatorDataObjectTest extends AbstractUnitTest
{
Expand Down

0 comments on commit 1f86909

Please sign in to comment.