Yupp Framework PHP

Modelo: Validación automática

Las clases del modelo persistente (las que extienden PersistentObject) aceptan la definición de restricciones sobre sus atributos y relaciones. Estas restricciones sirven luego para verificar automáticamente que los datos con los que se quiere crear una instancia de una clase son inválidos. Estas verificaciones contra las restricciones son invocadas al invocar a alguno de los siguientes métodos de PersistentObject: Luego de invocar a alguno de los métodos anteriores, y si hubieron errores de validación, se generan errores para cada restricción que se violó. Dichos errores son accesibles mediante los siguientes métodos:
Un ejemplo de definición de restricciones podría ser:

$this->addConstraints("nombre", array(
    
Constraint::minLength(1),
    
Constraint::maxLength(30),
    
Constraint::blank(false)
));

$this->addConstraints(
"edad", array(
    
Constraint::between(10,100)
));

$this->addConstraints(
"email", array(
    
Constraint::email()
));


En el primer caso, el atributo nombre es de tipo TEXT, para este tipo de dato se pueden definir restricciones:

El segundo atributo, edad, es un número al cual se puede definir la restricción between que indica que el valor del atributo debe estar entre los valores especificados.

El atributo email, es un string que debe tener el formato válido de un email, por lo tanto se utiliza la restricción email para validar su formato.

Nota: la restricción maxLength para atributos de texto determina el tipo de la columna respectiva en la base de datos, por ejemplo, si se utiliza un maxLength de 100, la columna tendrá tipo VARCHAR(100), si se utiliza el valor 1000, la columna tendrá tipo TEXT.

Cuidado con las restricciones sobre atributos de una superclase

No se pueden declarar restricciones sobre atributos de una superclase si estos no fueron declarados antes, o sea que es necesario inicializar la superclase antes de definir restricciones sobre sus atributos. Ver ticket #22.

Por consultas o comentarios ir al grupo:
Grupos de Google
Suscribirte a Yupp Framework PHP
Correo electrónico:
Consultar este grupo