Relational Keys Class functions and methods

Additional Exceptions


Como vimos anteriormente en la clase objeto estándar, están definidas unas cuantas excepciones para cada clase que verifican cosas como que sus atributos sean o no requeridos y que sean de tal tipo, pero esas no son las únicas excepciones que se deben verificar, existen otros 2 tipos.

- Excepciones o verificaciones que requieren de consulta de base de datos: son aquellas que requieren de una conexión a base de datos y que solo se dan cuando el sistema esta consultando algo en la base de datos; por ejemplo: claves primarias repetidas (dos personas con el mismo documento), claves foráneas invalidas, entre otras.
- Excepciones o verificaciones que no requieren de consulta de base de datos: son aquellas que se pueden realizar sin necesidad de conexión a base de datos: excepciones de edad (por ejemplo que se solo se permita ingresar mayores de 18 años), excepciones de rango de valores (por ejemplo que un ingreso sea mayor que 0), entre otros. Para este tipo de excepciones adicionales se usa la función additional_exceptions().

Por ejemplo: supongamos que se necesita un software que valide que las personas que se ingresen al sistema sean mayores de edad, para tal requisito debemos hacer los siguiente:

Modificar el archivo work/classes/person.php y agregar lo siguiente a la función additional_exceptions()

function additional_exceptions($list$check, &$message)
{
    if((
$list == NULL) || (in_array('age',$list) && $check == 'check') ||
      (!
in_array('age',$list) && $check == 'not check'))
    {
        if(
$this->age 18){$message.="Age must be over 18 years";} 
    }
}

Luego utilizando el controlador y template (example7) creados en el capitulo de exceptions, podemos verificar que esta función excepción si se verifica, por ejemplo: ingresemos todos los datos y en la parte que dice edad coloquemos el número 16.
Lo anterior nos mostrara por pantalla el aviso: Age must be over 18 years.

Así de una manera rápida y sencilla hemos implementado una verificación adicional que servirá para todos los casos en los que se llame la función exceptions que por dentro invoca la función additional_exceptions

Nota: el primer if, del código anterior es un if predefinido que SIEMPRE debe ir cuando se cree una excepción adicional, el if interno es el if opcional que puede crear y modificar cualquier programador.
El primer if se utiliza para que funcionen con normalidad la variable list y check que se envían a las excepciones y que fueron vistas anteriormente.
Relational Keys Class functions and methods