Documentation

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

$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

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
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.

public MyShutdown( ) : mixed
Return values
mixed

myErrorHandler()

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
mixed

MyExceptionHandler()

Funcion callback en el caso de excepciones no controladas.

public MyExceptionHandler( $exception : Throwable ) : mixed
Parameters
$exception : Throwable
Return values
mixed

fixParameter()

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
throws

en caso no pueda cargarse el response processor.

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

Ver \TSLResponseProcessorLoaderHelper

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.

Search results