for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace voku\HtmlFormValidator;
use Respect\Validation\Rules\AbstractRule;
class ValidatorRulesManager
{
/**
* @var string[]|AbstractRule[]
*/
private $rules = [];
* @param string $name
* @param string|AbstractRule $validatorClassName
public function addCustomRule(string $name, $validatorClassName)
$this->rules[$name] = $validatorClassName;
}
* @param string $rule
*
* @return array <p>keys: 'class', 'classArgs', 'object'</p>
public function getClassViaAlias(string $rule): array
if (!$rule) {
return [
'class' => null,
'classArgs' => null,
'object' => null,
];
if (isset($this->rules[$rule])) {
$classWithNamespace = $this->rules[$rule];
} else {
$classWithNamespace = $rule;
if ($classWithNamespace instanceof AbstractRule) {
'object' => $classWithNamespace,
// remove the namespace
if (\strpos($classWithNamespace, "\\") !== false) {
$class =
\substr(
\strrchr(
$classWithNamespace,
"\\"
),
1
);
$class = $classWithNamespace;
$class = \lcfirst(\trim($class));
list($class, $classArgs) = ValidatorHelpers::getArgsFromString($class);
'class' => $class,
'classArgs' => (\count($classArgs) !== 0 ? $classArgs : null),