TSLBaseController
extends CI_Controller
in
Controlador basico especificamente disenado para el caso WEB , basicamente efectuara la validacion de los parametros , control de errores a nivel de problemas de sistema y define metodos a ser requeridos para todos los controladores que implementen basados en este, como determinar la vista de salida y el response procesor que se requerira para transformar los datos para la vista.
Table of Contents
$DTO | El Data transfer Object | TSLIDataTransferObj |
---|---|---|
$responseProcessor | Instancia del encoder que procesara los datos resultados obtenidos en el DTO y los transformara al formato requerido por la vista de salida, por ejemplo JSON, XML. | TSLIResponseProcessor |
$DEBUG | Si envia mensajes de debug o no. | bool |
__construct() | TSLBaseController constructor. | mixed |
MyShutdown() | Funcion callback al terminar el ciclo del controller en el cual se detectaran si hubo errores inesperados para ser colocados como parte de la salida. | mixed |
myErrorHandler() | Funcion callback del sistema para en caso sucedan errores no controlados, colocara el mensaje de error como parte de la salida. | mixed |
MyExceptionHandler() | Funcion callback en el caso de excepciones no controladas. | mixed |
fixParameter() | Reemplaza el valor de un parametro por el enviado en el caso se cumpla la condicion de igualdad con el valueToSearch. | mixed |
validateInputData() | Validara los parametros que vienen enviados desde el cliente (browser) y el resultado de dicha validacion sera colocado en el out message que es parte del DTO. | bool |
getView() | Retornara el nombre de la vista , realmente debera corresponder a la clase que implementa la vista de salida, estas vistas seran buscadas en el directorio views de la aplicacion. | string |
getResponseProcessor() | Retornara la instancia del response processor para crear la salida adecuada a la vista , por ejemplo podria ser para JSON,XML u otro cualquiera. | TSLIResponseProcessor |
getUserResponseProcessor() | Override si se usa un response especifico en algun caso y que no se cargue el default. | string |
Properties
$DTO
El Data transfer Object
protected
TSLIDataTransferObj
$DTO
$responseProcessor
Instancia del encoder que procesara los datos resultados obtenidos en el DTO y los transformara al formato requerido por la vista de salida, por ejemplo JSON, XML.
protected
TSLIResponseProcessor
$responseProcessor
$DEBUG
Si envia mensajes de debug o no.
private
bool
$DEBUG
= \false
Methods
__construct()
TSLBaseController constructor.
public
__construct(
)
: mixed
Crea las estructuras requeridas por el DTO carga el response processor, asi mismo setea el sistema de errores del PHP tales como el metodo de shutdown y el exception handler.
Return values
mixedMyShutdown()
Funcion callback al terminar el ciclo del controller en el cual se detectaran si hubo errores inesperados para ser colocados como parte de la salida.
public
MyShutdown(
)
: mixed
Return values
mixedmyErrorHandler()
Funcion callback del sistema para en caso sucedan errores no controlados, colocara el mensaje de error como parte de la salida.
public
myErrorHandler(
$errno :
int
, $errstr :
string
, $errfile :
string
, $errline :
int
)
: mixed
Parameters
- $errno : int
- $errstr : string
- $errfile : string
- $errline : int
Return values
mixedMyExceptionHandler()
Funcion callback en el caso de excepciones no controladas.
public
MyExceptionHandler(
$exception :
Throwable
)
: mixed
Parameters
- $exception : Throwable
Return values
mixedfixParameter()
Reemplaza el valor de un parametro por el enviado en el caso se cumpla la condicion de igualdad con el valueToSearch.
protected
fixParameter(
$parameterName :
string
, $valueToSearch :
string
, $valueToReplace :
mixed
)
: mixed
Util por ejemplo si el lado cliente envia el string 'null' para indicar campo vacio y deseamos reemplazarlo por ejemplo con un NULL real.
Parameters
- $parameterName : string
Nombre del parametro de entrada a trabajar
- $valueToSearch : string
valor a buscar
- $valueToReplace : mixed
valos por el cual reemplazar
Return values
mixed —con el valor del parametro modificado o NULL si el parametro no existe.
validateInputData()
Validara los parametros que vienen enviados desde el cliente (browser) y el resultado de dicha validacion sera colocado en el out message que es parte del DTO.
protected
final validateInputData(
$DTO :
TSLIDataTransferObj
, $langId :
string
, $validationId :
string
, $validationGroupId :
string
, $validationRulesId :
string
)
: bool
Como ejemplo de un archivo de validacion :
$config['v_colorclass'] = array( 'getColorClass' => array( array( 'field' => 'color_class_codigo', 'label' => 'lang:color_class_codigo', 'rules' => 'required|alpha_dash|max_length[20]' ) ), 'updColorClass' => array( array( 'field' => 'color_class_codigo', 'label' => 'lang:color_class_codigo', 'rules' => 'required|alpha_dash|max_length[20]' ), array( 'field' => 'color_class_value', 'label' => 'lang:color_class_value', 'rules' => 'required|max_length[7]' ), array( 'field' => 'color_class_protected', 'label' => 'lang:color_class_protected', 'rules' => 'required|is_boolean' ), array( 'field' => 'versionId', 'label' => 'lang:versionId', 'rules' => 'required|integer' ) ), 'delColorClass' => array( array( 'field' => 'color_class_codigo', 'label' => 'lang:color_class_codigo', 'rules' => 'required|alpha_dash|max_length[20]' ), array( 'field' => 'versionId', 'label' => 'lang:versionId', 'rules' => 'required|integer' ) ), 'addColorClass' => array( array( 'field' => 'color_class_codigo', 'label' => 'lang:color_class_codigo', 'rules' => 'required|alpha_dash|max_length[20]' ), array( 'field' => 'color_class_value', 'label' => 'lang:color_class_value', 'rules' => 'required|max_length[7]' ), array( 'field' => 'color_class_protected', 'label' => 'lang:color_class_protected', 'rules' => 'required|is_boolean' ) ) );
y su respectivo archivo de lenguaje, donde estaran los nombres de los campos en el idioma que se este usando, como minimo seria asi en este ejemplo:
$lang['color_class_codigo'] = 'Codigo'; $lang['color_class_value'] = 'Valor'; $lang['color_class_protected'] = 'Protegido'; $lang['versionId'] = 'Version';
Parameters
- $DTO : TSLIDataTransferObj
DTO donde residiran las respuestas a la validacion en caso exista errores y especificamente iran en el out message del mismo.
- $langId : string
Nombre base del archivo que contendra las traducciones para los mensajes de error de validaciones de campos , pej. factura , hara que el framework busque el archivo factura_lang. Este archivo debe ir en el directorio application/language/[idioma] de la aplicacion.
- $validationId : string
Nombre base del archivo que contendra las validaciones, pej. factura , hara que el framework busque el archivo facturavalidation Este archivo debe ir en el directorio application/config de la aplicacion. Para ver como se configura {@see https://codeigniter.com/userguide3/libraries/form_validation.html#overview}
- $validationGroupId : string
Un archivo de validacion puede contener varios grupos, este parametro indicara el grupo.
- $validationRulesId : string
Dentro de cada grupo habra u set de reglas para distintos casos como pueden ser una para agregar , eliminar, etc.
Return values
bool —TRUE si las validaciones fueron correctas y FALSE si no lo fueron, en este caso en el out message del DTO iran los mensajes de error de las validaciones para cada campo validado con error.
getView()
Retornara el nombre de la vista , realmente debera corresponder a la clase que implementa la vista de salida, estas vistas seran buscadas en el directorio views de la aplicacion.
protected
abstract getView(
)
: string
Este subdirectorio debe estar bajo el $application_folder definido para la aplicacion.
Return values
string —con el nombre de la clase de la vista
getResponseProcessor()
Retornara la instancia del response processor para crear la salida adecuada a la vista , por ejemplo podria ser para JSON,XML u otro cualquiera.
protected
abstract getResponseProcessor(
)
: TSLIResponseProcessor
Tags
Return values
TSLIResponseProcessor —la instancia del response processor
getUserResponseProcessor()
Override si se usa un response especifico en algun caso y que no se cargue el default.
protected
getUserResponseProcessor(
)
: string
Return values
string —con el nombre del procesador de salida definida por el usuario , de ser null se aplicara los metodos default de carga de dichas clases.