* * For the full copyright and license information, please view the LICENSE file * that was distributed with this source code. */ declare(strict_types=1); namespace Respect\Validation\Exceptions; use function count; /** * @author Alexandre Gomes Gaigalas * @author Henrique Moody */ class GroupedValidationException extends NestedValidationException { public const NONE = 'none'; public const SOME = 'some'; /** * {@inheritDoc} */ protected $defaultTemplates = [ self::MODE_DEFAULT => [ self::NONE => 'All of the required rules must pass for {{name}}', self::SOME => 'These rules must pass for {{name}}', ], self::MODE_NEGATIVE => [ self::NONE => 'None of there rules must pass for {{name}}', self::SOME => 'These rules must not pass for {{name}}', ], ]; /** * {@inheritDoc} */ protected function chooseTemplate(): string { $numRules = $this->getParam('passed'); $numFailed = count($this->getChildren()); return $numRules === $numFailed ? self::NONE : self::SOME; } }