mirror of
https://github.com/Respect/Validation.git
synced 2026-03-17 15:50:03 +01:00
The argument "parameters" which is meant to give the wrapped rule's exception some extra information does not always need to be defined, for example when the exception does not need any parameter. The current version of "AbstractEnvelope" required that argument and the rules that are extending this class are passing an empty array. This commit will make the "parameters" argument optional. As an extra, it will make sure the tests from the children of "AbstractEnvelope" are also covering their parent. Signed-off-by: Henrique Moody <henriquemoody@gmail.com>
66 lines
1.5 KiB
PHP
66 lines
1.5 KiB
PHP
<?php
|
|
|
|
/*
|
|
* This file is part of Respect/Validation.
|
|
*
|
|
* (c) Alexandre Gomes Gaigalas <alexandre@gaigalas.net>
|
|
*
|
|
* For the full copyright and license information, please view the "LICENSE.md"
|
|
* file that was distributed with this source code.
|
|
*/
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Respect\Validation\Rules;
|
|
|
|
use Respect\Validation\Exceptions\ValidationException;
|
|
use Respect\Validation\Validatable;
|
|
|
|
/**
|
|
* Abstract class that creates an envelope around another rule.
|
|
*
|
|
* This class is usefull when you want to create rules that use other rules, but
|
|
* having an custom message.
|
|
*
|
|
* @author Henrique Moody <henriquemoody@gmail.com>
|
|
*/
|
|
abstract class AbstractEnvelope extends AbstractRule
|
|
{
|
|
/**
|
|
* @var Validatable
|
|
*/
|
|
private $validatable;
|
|
|
|
/**
|
|
* @var array
|
|
*/
|
|
private $parameters;
|
|
|
|
/**
|
|
* Initializes the rule.
|
|
*
|
|
* @param Validatable $validatable
|
|
* @param array $parameters
|
|
*/
|
|
public function __construct(Validatable $validatable, array $parameters = [])
|
|
{
|
|
$this->validatable = $validatable;
|
|
$this->parameters = $parameters;
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function validate($input): bool
|
|
{
|
|
return $this->validatable->validate($input);
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function reportError($input, array $extraParameters = []): ValidationException
|
|
{
|
|
return parent::reportError($input, $extraParameters + $this->parameters);
|
|
}
|
|
}
|