for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Almendra\Validators;
use Almendra\Validators\Interfaces\ValidatorInterface;
use Almendra\Validators\Traits\ArrayTrait;
/**
* The validator.
*/
class Validator implements ValidatorInterface
{
use ArrayTrait;
public function getSupportedTypes()
return $this->register();
}
public function register()
return [
\Almendra\Validators\Types\IntegerType::class => 'integer',
\Almendra\Validators\Types\StringType::class => 'string',
\Almendra\Validators\Types\FloatType::class => 'float',
\Almendra\Validators\Types\DoubleType::class => 'double',
\Almendra\Validators\Types\FileType::class => 'file',
];
public function __call($name, $values)
foreach ($this->register() as $type => $alias) {
if ($alias == $name) {
// call that method
return $this->type = new $type(
type
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;
$this->toArray($values)
);
throw new \Exception('The called method is not defined or unsupported');
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: