for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Comfort\Validator\Helper;
use Comfort\Exception\ValidationException;
use Comfort\ValidationError;
trait ExecutorTrait
{
/**
* Execute the validation stack and fail on first
*
* @param $value
* @param null $key
* @return bool|ValidationError|null
*/
protected function validate($value, $key = null)
if (is_null($value) && $this->optional) {
optional
In PHP it is possible to write to properties without declaring them. For example, the following is perfectly valid PHP code:
class MyClass { } $x = new MyClass(); $x->foo = true;
Generally, it is a good practice to explictly declare properties to avoid accidental typos and provide IDE auto-completion:
class MyClass { public $foo; } $x = new MyClass(); $x->foo = true;
if (is_null($this->defaultValue)) {
return null;
} else {
$value = $this->defaultValue;
defaultValue
}
try {
reset($this->validationStack);
validationStack
do {
/** @var callable $validator */
$validator = current($this->validationStack);
$retVal = $validator($value, $key);
$value = $retVal === null ? $value : $retVal;
} while (next($this->validationStack));
if ($this->toBool) {
toBool
return true;
return $value;
} catch (ValidationException $validationException) {
return false;
return ValidationError::fromException($validationException);
In PHP it is possible to write to properties without declaring them. For example, the following is perfectly valid PHP code:
Generally, it is a good practice to explictly declare properties to avoid accidental typos and provide IDE auto-completion: