src/Training/Validators/SubscriptionValidator.php
/**
     * Method validate
     *
     * Valida os dados de uma entidade Subscription
     *
     * @param \Training\Entities\Subscription $target
     *
     * @return bool
     *
     */
Method validate
Valida os dados de uma entidade Subscription

@param \Training\Entities\Subscription $target

@return bool
Method validate Valida os dados de uma entidade Subscription @param \ Training \ Entities \ Subscription $target @return bool
public function validate($target)
    {
        $result = true;
        try {
            $reflection = new \ReflectionClass($target);
        } catch (\Exception $e) {
            $this->exception = $e;
            return false;
        }
        foreach ($this->rules as $key => $rules) {
            try {
                if ($reflection->hasProperty($key)) {
                    $property = $reflection->getProperty($key);
                    $property->setAccessible(true);
                    $value = $property->getValue($target);
                    array_map(function($class) use ($value, $target) {
                        $rule = new $class();
                        if ($rule instanceof CPFValidatorRule) {
                            if ($target->getDocumentType() !== DocumentTypeEnum::CPF) {
                                $rule->ignoreValidation(true);
                            }
                        } else if ($rule instanceof CNPJValidatorRule) {
                            if ($target->getDocumentType() !== DocumentTypeEnum::CNPJ) {
                                $rule->ignoreValidation(true);
                            }
                        }
                        $rule->setValue($value);
                        return $rule->validateRule();
                    }, $rules);
                } else {
                    throw new \Exception(ValidationErrorsEnum::getMessage(ValidationErrorsEnum::UNKNOWN_PROPERTY, $key));
                }
            } catch (\Exception $exception) {
                $this->exception = $exception;
                $result = false;
                break;
            }
        }
        return $result;
    }
public function validate ( $ target ) { $ result = true ; try { $ reflection = new \ ReflectionClass ( $ target ) ; } catch ( \ Exception $ e ) { $ this -> exception = $ e ; return false ; } foreach ( $ this -> rules as $ key => $ rules ) { try { if ( $ reflection -> hasProperty ( $ key ) ) { $ property = $ reflection -> getProperty ( $ key ) ; $ property -> setAccessible ( true ) ; $ value = $ property -> getValue ( $ target ) ; array_map ( function ( $ class ) use ( $ value , $ target ) { $ rule = new $ class ( ) ; if ( $ rule instanceof CPFValidatorRule ) { if ( $ target -> getDocumentType ( ) !== DocumentTypeEnum :: CPF ) { $ rule -> ignoreValidation ( true ) ; } } else if ( $ rule instanceof CNPJValidatorRule ) { if ( $ target -> getDocumentType ( ) !== DocumentTypeEnum :: CNPJ ) { $ rule -> ignoreValidation ( true ) ; } } $ rule -> setValue ( $ value ) ; return $ rule -> validateRule ( ) ; } , $ rules ) ; } else { throw new \ Exception ( ValidationErrorsEnum :: getMessage ( ValidationErrorsEnum :: UNKNOWN_PROPERTY , $ key ) ) ; } } catch ( \ Exception $ exception ) { $ this -> exception = $ exception ; $ result = false ; break ; } } return $ result ; }
Method validate
 Valida os dados de uma entidade Subscription
Method validate Valida os dados de uma entidade Subscription
/** @var AbstractRule $rule */ /**
                             *  Se não for um documento do tipo cpf ignora então
                             */ /**
                             *  Se não for um documento do tipo cpf ignora então
                             */