The online documentation is produced by a web publishing technology created by us to read the documents origins in OpenOffice Writer (ODT) and Microsoft Word (docx) formats and produces native web and PDF versions. In this way we maintain Louder project documentation update and in sync on each of its formats.
Kumbia Enteprise es un framework diseñado para sostener e implementar aplicaciones críticas cuyos procesos esten excesivamente testeados y cuando se lleven a producción tengan una madurez considerablemente buena. Para lograr esto se ha diseñado el framework para adoptar en cierto nivel comportamientos como los de los lenguajes compilados ó semi-compilados.
Las aplicaciones en PHP normalmente realizan acciones que dependiendo de la situación conllevan a que procesos aborten ó no se ejecuten correctamente debido a malas prácticas de desarrollo. Estas prácticas van desde crear dinámicamente atributos en objetos, obtener valores de indices que no se han definido en arrays, pasar argumentos del tipo incorrecto a métodos y funciones y hasta no implementar el modo E_STRICT.
Cuando usted desarrolla en Kumbia Enterprise el framework le ayuda a detectar cualquier mala práctica de desarrollo ó situaciones de baja criticidadad que muchas veces se pasan por alto obligando a que se tome un correctivo apropiado.
El carácter interpretado de PHP dificulta que se encuentren errores ó inconvenientes de tipos en una primera fase de compilación ya que esta es inexistente. Por esto es necesario hacer testeos a todos los procesos en múltiples escenarios para detectar problemas y corregirlos.
Modo SUPER_STRICT
Todas las situaciones de error, advertencia e información que se generan desde PHP y como parte del proceso de validación riguroso implementado en una aplicación se reportan al desarrollador en forma de excepciones.
Algunas situaciones que generan excepciones:
Llamados a métodos y funciones enviando tipos de datos incorrectos. Funciones que reciban arrays ó instancias predefinidas de objetos.
Llamados a métodos y funciones con un número incorrecto de parámetros
Leer una propiedad de un objeto que no haya definido previamente
Escribir una propiedad de un objeto que no se haya definido previamente
Leer una variable que no se haya definido
Leer un valor de un indice de un array que no se haya definido
Leer con include un archivo que no exista
Invocar un método en forma estática sin que este definido como tal
Realizar una división por cero
Realizar una operación cuyos operandos no esten soporados por los operadores
Deserializar un objeto incompleto
Asignar una referencia a un objeto instanciado con new
Indexar un vector usando una constante no definida
Tratar de convertir un objeto (sin __toString()) definido en un valor escalar (entero, flotante)
Tratar de convertir un objeto stdClass en una cadena
Variables de configuración que generan excepciones (pueden ser desactivadas):
Tener register_globals activado
Tener session.use_only_cookies = 0
Capturar excepciones de gravedad leve
Algunos desarrolladores pueden considerar que determinados componentes son susceptibles a excepciones leves y por lo tanto estas deban controlarse adecuadamente. Las excepciones por notificaciones, advertencias y otras son generadas con un código que permite identificarlas:
Ejemplo: Capturar una excepción de gravedad leve
<?php
try {
//Imprimir una variable que no existe
echo $value;
}
catch(CoreException $e){
//Si es una excepción leve la re-lanza
if($e->getMessage()!=-8){
throw $e;
}
}
Los códigos de las excepciones leves son las siguientes:
Tabla: Códigos para identificar excepciones leves
Código
Tipo
Descripción
-8
Notificaciones
Indica que se ha encontrado situaciones que podrían indicar un posible error ó inconsistencia.
-2
Advertencias
Indica situaciones que indica que no se ha podido completar una operación esperada pero que permiten que se continue con la ejecución de la aplicación.
-16
Advertencias de PHP
Son situaciones de advertencia generadas por PHP como por ejemplo el no poder cargar una extensión.
-2048
Modo Strict
Genera excepciones que previenen que el código no se vuelva obsoleto a través del tiempo y sea fácilmente portable a nuevas versiones de PHP.
Existen otros tipos de excepciones, sus códigos coinciden con los valores de las constantes E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE, E_DEPRECATED y otras.