Feature #44738
Re-Validation of argument's custom validators
| Status: | New | Start date: | 2013-01-23 | |
|---|---|---|---|---|
| Priority: | Must have | Due date: | ||
| Assigned To: | - | % Done: | 0% |
|
| Category: | Validation | |||
| Target version: | - | |||
| PHP Version: | Complexity: | |||
| Has patch: | No |
Description
There are situation where the automatic validation of arguments, that happens BEFORE passing the arguments to the action-method, is not enough. The validation should be able to be reactivated in the controller-action. E.g if you do some business logic inside the action.
A very simple and common example, is where you want to validate an item after adding some sub-items to it:
public function addChildAction(Parent $parent, Child $child) {
$parent->addChild($child);
$this->revalidateArguments();
}
class BadNameChoiceValidator extends \TYPO3\Flow\Validation\Validator\GenericObjectValidator {
protected function isValid($parent) {
foreach($parent->getChilds() as $child) {
if($parent->lastName === 'Walker' && $child->firstName === 'Johnny') {
$this->addError('Name is to alcoholic!', 1357116916);
}
}
}
}
Thus the ValidatorInterface should have a reset-method. E.g. the ObjectValidator could reset its validatedInstancesContainer there.