Edición de «Application controller»

De KumbiaPHP Framework Wiki

Advertencia: no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si inicias sesión o creas una cuenta, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.

Puedes deshacer la edición. Antes de deshacer la edición, comprueba la siguiente comparación para verificar que realmente es lo que quieres hacer, y entonces guarda los cambios para así efectuar la reversión.

Revisión actual Tu texto
Línea 4: Línea 4:
 
modelo MVC. Contiene métodos importantes para facilitar la interacción entre éstos, los
 
modelo MVC. Contiene métodos importantes para facilitar la interacción entre éstos, los
 
modelos y la presentación.
 
modelos y la presentación.
 
 
Características:
 
Características:
 
+
Los valores de los atributos de las sub-clases son persistentes, es decir que no se
*Los valores de los atributos de las sub-clases son persistentes, es decir que no se
 
 
pierden cuando termina la ejecución de un script.
 
pierden cuando termina la ejecución de un script.
 
+
Automatiza la interacción entre la lógica y la presentación
*Automatiza la interacción entre la lógica y la presentación
+
Es sencilla de usar
 
 
*Es sencilla de usar
 
  
 
='''Métodos de la Clase ApplicationController'''=
 
='''Métodos de la Clase ApplicationController'''=
 
La clase posee una serie de métodos que son útiles para el trabajo con controladores.
 
La clase posee una serie de métodos que son útiles para el trabajo con controladores.
 
   
 
   
=='''Render($view)'''==
+
'''Render($view)'''
Visualiza una vista que pertenece al mismo controlador.
+
Visualiza una vista que pertenece al mismo controlador. Ejemplo:
 
+
<source lang=php line>
Ejemplo:
+
1. <?php
<source lang=php>
+
2.
<?php
+
3. class ProductosController extends ApplicationController {
 
+
4.
class ProductosController extends ApplicationController {
+
5. function index(){
 
+
6. $this>
  function index(){
+
render('consultar');
    $this->render('consultar');
+
7. }
  }
+
8.
 
+
9. } //fin de la clase
} //fin de la clase
+
10.
 
+
11.?>
?>
 
 
</source>
 
</source>
 
En este caso se visualizaría la vista views/productos/consultar.phtml
 
En este caso se visualizaría la vista views/productos/consultar.phtml
  
=='''Redirect($url, $seconds=0.5)'''==
+
'''Redirect($url, $seconds=0.5)'''
 
Redirecciona la ejecución a otro controlador en un tiempo de ejecución determinado
 
Redirecciona la ejecución a otro controlador en un tiempo de ejecución determinado
  
<source lang=php>
+
<source lang=php line>
<?php
+
1. <?php
 
+
2.
class ProductosController extends ApplicationController {
+
3. class ProductosController extends ApplicationController {
 
+
4.
  function index(){
+
5. function index(){
    $this->redirect('facturas/nueva', 2);
+
6. $this>
  }
+
redirect('facturas/nueva', 2);
 
+
7. }
}
+
8.
 
+
9. }
?>
+
10.
 +
11.?>
 
</source>
 
</source>
  
 
En el ejemplo va a facturas/nueva después de 2 segundos
 
En el ejemplo va a facturas/nueva después de 2 segundos
  
=='''Post($value)'''==
+
'''Post($value)'''
 
Obtiene acceso orientado a objetos a los valores de $_POST, $value es el índice para
 
Obtiene acceso orientado a objetos a los valores de $_POST, $value es el índice para
 
pasar al array asociativo.
 
pasar al array asociativo.
  
=='''Get($value)'''==
+
'''Get($value)'''
 
Obtiene acceso orientado a objetos a los valores de $_GET, $value es el índice para
 
Obtiene acceso orientado a objetos a los valores de $_GET, $value es el índice para
 
pasar al array asociativo.
 
pasar al array asociativo.
  
=='''Request($value)'''==
+
'''Request($value)'''
 
Obtiene acceso orientado a objetos a los valores de $_REQUEST, $value es el índice para
 
Obtiene acceso orientado a objetos a los valores de $_REQUEST, $value es el índice para
 
pasar al array asociativo.
 
pasar al array asociativo.
  
=='''Render_partial($name)'''==
+
'''Render_partial($name)'''
 
Visualiza una vista parcial (partial) que pertenece al mismo controlador. Ejemplo:
 
Visualiza una vista parcial (partial) que pertenece al mismo controlador. Ejemplo:
<source lang=php>
+
<source lang=php line>
<?php
+
1. <?php
 +
2.
 +
3. class ProductosController extends ApplicationController {
 +
4.
 +
5. function index(){
 +
6. $this>
 +
render_partial('mostrar_menu');
 +
7. }//fin del metodo
 +
8.
 +
9. }//fin de la clase
 +
10.
 +
11.?>
 +
</source>
 +
En este caso se visualizaría la vista parcial views/productos/_mostrar_menu.phtml
  
  class ProductosController extends ApplicationController {
+
'''Route_to([params: valor])'''
 +
Hace el enrutamiento desde un controlador a otro, o desde una acción a otra. Recibe los
 +
parámetros con nombre:
 +
• controller: A qué controlador se va a redireccionar
 +
• action: A que acción se va a redireccionar
 +
• id: Id de la redirección
 +
Ejemplo:
 +
<source lang=php line>
 +
1. return $this>
 +
route_to("controller: clientes", "action: consultar", "id:1");
 +
</source>
  
  function index(){
+
El tipo de enrutamiento que realiza es interno, es decir que lo usuarios no notan cuando
    $this->render_partial('mostrar_menu');
+
están siendo redireccionados en la aplicación.
  }//fin del metodo
+
 +
'''Redirect($url_controlador)'''
 +
Realiza un redireccionamiento a otro controlador/accion mediante HTTP. Es útil cuando
 +
queremos hacer una real redirección que incluso cambie la URL que aparece en el
 +
explorador.
 +
Ejemplo:
 +
<source lang=php line>
 +
1. $this>
 +
redirect(“/productos/query”);
 +
</source>
  
}//fin de la clase
+
'''Cache_layout($minutes)'''
 +
Caché de la vista views/layout/ correspondiente al controlador durante $minutes
  
?>
+
'''Not_found($controller, $action)'''
 +
Puedes definir el método not_found en cualquier controlador, en caso de estar definido se
 +
llamará cuando no encuentre definida alguna acción así es más fácil controlar este tipo
 +
de errores:
 +
<source lang=php line>
 +
1. <?php
 +
2. class PruebaController extends ApplicationController {
 +
3.
 +
4. function index(){
 +
5. $this>
 +
render_text("Este es el index");
 +
6. }
 +
7.
 +
8. function not_found($controller, $action){
 +
9. Flash::error("No esta definida la accion $action, redireccionando
 +
a index...");
 +
10. return $this>
 +
route_to('action: index');
 +
11. }
 +
12. }
 +
13.?>
 
</source>
 
</source>
En este caso se visualizaría la vista parcial views/productos/_mostrar_menu.phtml
 
  
=='''Route_to([params: valor])'''==
+
'''NOTA: '''Ahora en la versión 0.5 se incluye un vista views/not_found.phtml, esto
Hace el enrutamiento desde un controlador a otro, o desde una acción a otra.
+
hace que no se haga necesario la implementacion del metodo not_found, ya
 +
que cuando no exista un controller o una acción se renderizara dicha vista, esta
 +
puede ser totalmente personalizada de manera que sea mas comodo el
 +
desarrollo
 +
 
 +
'''Set_response($type)'''
 +
Especifica el tipo de respuesta que va a generar el controlador. Cuando es el valor de
 +
$type es view solamente envía la salida de la vista más no del layout, el template o
 +
cualquier cabecera html. Es ideal en salidas AJAX o PDF. Otro valor para $type es XML.
 +
<source lang=php line>
 +
1. <?php
 +
2. class PruebaController extends ApplicationController {
 +
3.
 +
4. function accion_ajax(){
 +
5. $this>
 +
set_response(“view”);
 +
6. }
 +
7. }
 +
</source>
 +
 
 +
'''Is_alnum($valor)'''
 +
Evalúa si un campo es alfanumérico o no. Es útil para validar la entrada de datos al
 +
recibirlos por parte de usuarios.
 +
<source lang=php line>
 +
1. <?php
 +
2. class PruebaController extends ApplicationController {
 +
3.
 +
4. function adicionar(){
 +
5. $nombre = $this>
 +
request(“nombre”);
 +
6. if($this>
 +
is_alnum($nombre)==false){
 +
7. Flash::error(“Entrada invalidad para precio”);
 +
8. return;
 +
9. }
 +
10. /* ..*/
 +
11. }
 +
12. }
 +
13.?>
 +
</source>
 +
'''Load_record($record)'''
 +
Carga los campos de un registro ActiveRecord como atributos del controlador, recibe
 +
como parámetro $record ActiveRecord o string registro ActiveRecord a cargar, si es un
 +
 
 +
'''string: '''este debe corresponder al nombre de un modelo Soporta argumento variable.
 +
 
 +
'''field:''' campos a cargar separados por coma
 +
 
 +
'''except:''' campos que no se cargaran separados por coma
 +
 
 +
'''suffix:''' sufijo para el atributo en el controlador
 +
 
 +
'''preffix:''' prefijo para el atributo en el controlador
 +
 
 +
<source lang=php line>
 +
//Ejemplo1:
 +
$usuario = $this>
 +
Usuario>
 +
find(1);
 +
$this>
 +
load_record($usuario);
 +
//Ejemplo2:
 +
$usuario = $this>
 +
Usuario>
 +
find(1);
 +
$this>
 +
load_record($usuario, 'except: id, sexo');
 +
//Ejemplo3:
 +
$usuario = $this>
 +
Usuario>
 +
find(1);
 +
$this>
 +
load_record($usuario, 'field: nombre, apellido');
 +
//Ejemplo4:
 +
$usuario = $this>
 +
Usuario>
 +
find(1);
 +
$this>
 +
load_record($usuario, 'preffix: c_');
 +
//Ejemplo5:
 +
$this>
 +
load_record('Usuario');
 +
//Ejemplo6:
 +
$this>
 +
load_record('Usuario', 'field: nombre, apellido');
 +
</source>
 +
 
 +
'''is_numeric($valor)'''
 +
Evalúa si un campo es numérico o no. Es útil para validar la entrada de datos al recibirlos
 +
por parte de usuarios.
 +
<source lang=php line>
 +
1. <?php
 +
2. class PruebaController extends ApplicationController {
 +
3.
 +
4. function adicionar(){
 +
5. $precio = $this>
 +
request(“precio”);
 +
6. if($this>
 +
is_numeric($precio)==false){
 +
7. Flash::error(“Entrada invalida para precio”);
 +
8. return;
 +
9. }
 +
10. /* ..*/
 +
11. }
 +
12. }
 +
13.?>
 +
</source>
 +
 
 +
='''Obtener valores desde una de Kumbia'''=
 +
 
 +
Las URLs de Kumbia están caracterizadas por tener varias partes cada una de ellas con
 +
una función conocida. Para obtener desde un controlador los valores que vienen en la
 +
URL podemos usar algunas propiedades útiles en el controlador:
 +
Ejemplo1:
 +
 
 +
'''http://www.kumbiaphp.com/aplicacion/productos/buscar/12'''
  
Recibe los parámetros con nombre:
+
El sitio es: '''kumbia.org'''
 +
La aplicación es: '''aplicacion'''
 +
El controlador es: '''productos'''
 +
La acción es: '''buscar'''
 +
El valor para id es: '''12'''
  
• '''controller''': A qué controlador se va a redireccionar
+
Nuestro controlador aplicación/productos_controller.php luce así:
 +
<source lang=php line>
 +
1. <?php
 +
2.
 +
3. class ProductosController extends ApplicactionController {
 +
4.
 +
5. public function buscar($id){
 +
6. /* */
 +
7. }
 +
8. }
 +
9.
 +
10.?>
 +
</source>
  
• '''action''': A que acción se va a redireccionar
+
Dentro del método buscar podemos obtener el valor de id osea 12 en nuestro ejemplo
 +
colocando un parámetro al controlador $id podemos recoger este valor y utilizarlo
 +
internamente.
 +
Otras formas de hacer esto es utilizar los métodos post, get o request así:
 +
<source lang=php line>
 +
1. public function buscar(){
 +
2. $id = $this>
 +
request(“id”);
 +
3. // o también
 +
4. $id = $this>
 +
id;
 +
5. }
 +
</lang>
  
'''id''': Id de la redirección
+
'''¿Cómo saber el nombre del controlador actual?'''
 +
<source lang=php line>
 +
1. public function buscar(){
 +
2. $controlador = $this>
 +
controller_name;
 +
3. }
 +
</source>
  
Ejemplo:
+
'''¿Cómo saber el nombre de la acción actual?'''
<source lang=php>
+
<source lang=php line>
return $this->route_to("controller: clientes", "action: consultar", "id:1");
+
1. public function buscar(){
 +
2. $controlador = $this>
 +
action_name;
 +
3. }
 
</source>
 
</source>
  
El tipo de enrutamiento que realiza es interno, es decir que lo usuarios no notan cuando
+
Ahora veamos el siguiente ejemplo:
están siendo redireccionados en la aplicación.
+
'''http://www.kumbia.org/aplicacion/registro/buscar_fecha/2006/12/01'''
 +
El sitio es: '''kumbia.org'''
 +
La aplicación es: '''aplicacion'''
 +
El controlador es: '''registro'''
 +
La acción es: '''buscar_fecha'''
  
'''Aviso:'''
+
La mejor forma de recoger estos valores es de la siguiente forma:
En la 0.5 en adelante es mejor usar Router::route_to
+
<source lang=php line>
<source lang=php>
+
1. <?php
return Router::route_to("controller: clientes", "action: consultar", "id:1");
+
2.
 +
3. class RegistroController extends ApplicactionController {
 +
4.
 +
5. public function buscar_fecha($año, $mes, $dia){
 +
6. /* */
 +
7. }
 +
8. }
 +
9.
 +
10.?>
 
</source>
 
</source>
  
=='''Redirect($url_controlador)'''==
+
Como vemos los valores adicionales en la URL son automáticamente agregados como
Realiza un redireccionamiento a otro controlador/accion mediante HTTP.
+
parámetros en la acción del controlador.
  
Es útil cuando queremos hacer una real redirección que incluso cambie la URL que aparece en el
+
'''¿Que pasa con id en este ejemplo?''''
explorador.
+
''$id '''es el valor del primer parámetro siempre así que si nos referimos a éste,
 +
encontramos que tiene el valor 2006.
 +
 
 +
'''¿Cómo puedo obtener los parámetros extra si no sé cuántos son?'''
 +
Aquí usamos la propiedad del controlador '''$parameters''' que contiene estos valores así
 +
que el ejemplo podríamos reescribirlo así:
 +
 
 +
<source lang=php line>
 +
1. <?php
 +
2.
 +
3. class RegistroController extends ApplicactionController {
 +
4.
 +
5. public function buscar_fecha(){
 +
6. $año = $this>
 +
parameters[0];
 +
7. $mes = $this>
 +
parameters[1];
 +
8. $dia = $this>
 +
parameters[2];
 +
9. /* ... */
 +
10. }
 +
11. }
 +
</source>
  
Ejemplo:
+
Por último podemos ver todos los parámetros que vienen en una url de Kumbia usando la
<source lang=php>
+
propiedad del controlador '''$this->all_parameters'''. Una salida de esta variable en el
$this->redirect(“/productos/query”);
+
ejemplo anterior con print_r muestra:
 +
<source lang=php line>
 +
1. Array
 +
2. (
 +
3. [0] => registro
 +
4. [1] => buscar_fecha
 +
5. [2] => 2006
 +
6. [3] => 12
 +
7. [4] => 01
 +
8. )
 
</source>
 
</source>
  
=='''Cache_layout($minutes)'''==
 
Caché de la vista views/layout/ correspondiente al controlador durante $minutes
 
  
=='''Not_found($controller, $action)'''==
+
='''ApplicationControllerBase'''=
Puedes definir el método not_found en cualquier controlador, en caso de estar definido se
+
 
llamará cuando no encuentre definida alguna acción así es más fácil controlar este tipo
+
Es una clase definida en el archivo controllers/application.php, de esta forma:
de errores:
+
<source lang=php line>
<source lang=php>
+
1. <?php
<?php
+
2.
 +
3. class ControllerBase {
 +
4.
 +
5.
 +
6. }//fin de la clase
 +
7.
 +
8. ?>
 +
</source>
  
class PruebaController extends ApplicationController {
+
La clase tiene como objetivo permitir que se compartan ciertos métodos y atributos que
 +
deben estar disponibles para todos los controladores de la aplicación.
 +
<source lang=php line>
 +
1. <?php
 +
2.
 +
3. class ControllerBase {
 +
4.
 +
5. protected function seguridad(){
 +
6. /* ... */
 +
7. }
 +
8.
 +
9. }//fin de la clase
 +
10.
 +
11.?>
 +
</source>
  
  function index(){
+
y por ejemplo en el controlador productos podríamos usar este método así:
    $this->render_text("Este es el index");
 
  }
 
  
  function not_found($controller, $action){
+
<source lang=php line>
    Flash::error("No esta definida la accion $action, redireccionando a index...");
+
1. <?php
  return $this->route_to('action: index');
+
2.
  }
+
3. class Productos extends ApplicationController {
}
+
4.
?>
+
5. public function adicionar(){
 +
6.
 +
7. if($this>
 +
seguridad()){
 +
8. /* .... */
 +
9. }
 +
10.
 +
11. }
 +
12.
 +
13. }//fin de la clase
 +
14.
 +
15. ?>
 
</source>
 
</source>
  
'''NOTA: '''Ahora en la versión 0.5 se incluye un vista views/not_found.phtml, esto
+
El método seguridad ahora se encuentra disponible para cualquier controlador.
hace que no se haga necesario la implementacion del metodo not_found, ya
+
 
que cuando no exista un controller o una acción se renderizara dicha vista, esta
 
puede ser totalmente personalizada de manera que sea mas comodo el
 
desarrollo
 
  
=='''Set_response($type)'''==
+
='''Enrutamiento y Redirecciones'''=
Especifica el tipo de respuesta que va a generar el controlador.
 
  
Cuando es el valor de $type es view solamente envía la salida de la vista más no del layout, el template o cualquier cabecera html.
+
Kumbia proporciona un poderoso sistema de redireccionamiento que permite cambiar el
 +
flujo de la ejecución de una aplicación entre los controladores MVC.
 +
Kumbia permite el re-direccionamiento de 2 formas: estático y dinámico.
  
Es ideal en salidas AJAX o PDF. Otro valor para $type es XML.
+
'''¿Por qué re-direccionamiento?'''
<source lang=php>
+
• Necesitamos cambiar el flujo de la ejecución entre controladores, básicamente
<?php
+
• Ejemplo: El usuario trata de acceder a una acción que no existe y queremos enviarla a una válida.
 +
• Ejemplo: El usuario de la aplicación no tiene privilegios para continuar ejecutando determinada acción y debemos enviarlo a otra
  
class PruebaController extends ApplicationController {
+
'''Estático'''
 +
El direccionamiento estático ocurre en el archivo forms/config/routes.ini en donde le decimos al framework cuándo debe redireccionar de acuerdo a los controladores y/o acciones solicitadas.
 +
El archivo config/routes.ini se ve así:
 +
<source lang=php line>
 +
1. ; Usa este archivo para definir el enrutamiento estático entre
 +
2. ; controladores y sus acciones
 +
3. ;
 +
4. ; Un controlador se puede enrutar a otro controlador utilizando '*' como
 +
5. ; comodín así:
 +
6. ; controlador1/accion1/valor_id1 = controlador2/accion2/valor_id2
 +
7. ;
 +
8. ; Ej:
 +
9. ; Enrutar cualquier petición a posts/adicionar a posts/insertar/*
 +
10.; posts/adicionar/* = posts/insertar/*
 +
11.;
 +
12.; Enrutar cualquier petición a cualquier controlador en la acción
 +
13.; adicionar a posts/adicionar/*
 +
14.; */adicionar/* = posts/insertar/*
 +
15.
 +
16.[routes]
 +
17.prueba/ruta1/* = prueba/ruta2/*
 +
18.prueba/ruta2/* = prueba/ruta3/*
 +
</source>
 +
Cualquier política definida en este archivo tiene menos relevancia sobre un
 +
direccionamiento dinámico.
  
  function accion_ajax(){
+
'''Dinámico'''
    $this->set_response('view');
+
Ocurre cuando en ejecución necesitamos cambiar el flujo normal y pasar a otro controlador o a otra acción.
  }
+
El principal método para hacer esto es usar el método route_to:
}
+
1. route_to([params: valor])
 +
Recibe los parámetros con nombre:
 +
• '''controller:''' A que controlador se va a redireccionar
 +
• '''action:''' A que acción se va a redireccionar
 +
• '''id:''' Id de la redirección
 +
<source lang=php line>
 +
1. return $this->route_to("controller: clientes", "action: consultar", "id:1");
 
</source>
 
</source>
 +
No todos los parámetros son obligatorios sólo el que sea necesario.
  
=='''Is_alnum($valor)'''==
 
Evalúa si un campo es alfanumérico o no.
 
  
Es útil para validar la entrada de datos al recibirlos por parte de usuarios.
+
='''Filter'''=
<source lang=php>
 
<?php
 
  
class PruebaController extends ApplicationController {
+
Para la Versión 0.5 se incorpora el componente Filter el cual proporciona un conjunto
 +
de filtros que serán aplicados a datos que lo requieran.
 +
 
 +
='''Que es un Filtro?'''=
 +
Un filtro es utilizado habitualmente para eliminar porciones no deseadas de una entrada
 +
de datos, y la porción deseada de la entrada pasa a través de la producción como filtro
 +
(por ejemplo, café). En estos escenarios, un filtro es un operador que produce un
 +
subconjunto de la entrada. Este tipo de filtro es útil para aplicaciones web - la supresión
 +
de entrada ilegal, innecesario el recorte de los espacios en blanco, etc.
 +
Esta definición básica de un filtro puede ser ampliado para incluir a las transformaciones
 +
generalizadas de entrada. Una transformación que se debe aplicar a las aplicaciones web
 +
es el escapar de las entidades HTML. Por ejemplo, si un campo de formulario es
 +
automáticamente poco fiable de entrada, este valor debe ser libre de las entidades
 +
HTML, a fin de evitar las vulnerabilidades de seguridad. Para cumplir con este requisito,
 +
las entidades HTML que aparecen en la entrada debe ser eliminado o que se hayan
 +
escapado. Por supuesto, enfoque que es más apropiado depende de la situación. Un filtro
 +
que elimina las entidades HTML opera dentro del ámbito de aplicación de la primera
 +
definición de filtro - un operador que produce un subconjunto de la entrada.
 +
 
 +
 
 +
='''Utilización Básica'''=
 +
En este ejemplo se le pasa por el constructor de class Filter dos(upper, htmlspecialchars)
 +
filtros que serán aplicados a la cadena.
 +
<source lang=php line>
 +
$filter = new Filter('upper', 'htmlspecialchars');
 +
$var = '<b>Hola</b>';
 +
print_r($filter->apply($var)); //<B>HOLA</B>
 +
</source>
 +
A continuación se aplica el filtro de manera dinámica.
 +
<source lang=php line>
 +
$filter = new Filter();
 +
$var = '<b>Hola</b>';
 +
print_r( $filter->apply_filter($var, 'upper', 'htmlspecialchars')) //<B>HOLA</B>
 +
</source>
  
  function adicionar(){
+
Otra forma de aplicar filtros
    $nombre = $this->request(“nombre”);
+
<source lang=php line>
    if($this->is_alnum($nombre)==false){
+
$var = '<b>Hola</b>';
      Flash::error(“Entrada invalidad para precio”);
+
$filter = new Filter('upper', 'htmlspecialchars');
    return;
+
print_r ($filter->filter_value($var));
    }
+
Adicionalmente los filtros soportan como parámetros a filtrar array
  /* ..*/
+
$var = array('<b>Hola</b>');
  }
+
$filter = new Filter('upper', 'htmlspecialchars');
}
+
print_r( $filter->apply($var));//<B>HOLA</B>
?>
 
 
</source>
 
</source>
  
=='''Load_record($record)'''==
+
='''Métodos de la clase Filter'''=
Carga los campos de un registro ActiveRecord como atributos del controlador, recibe
+
 
como parámetro $record ActiveRecord o string registro ActiveRecord a cargar, si es un
+
A continuación se listan los métodos disponibles en la clase filter, el constructor de la
 +
clase filter puede recibir los filtros a ser aplicados.
 +
 
 +
'''Add_filter($filter)'''
 +
Agregar un filtro a la cola de filtros.
 +
'''Apply($var, [filters])''' y '''apply_filter($var, [filters])'''
 +
Aplica un filtros o un grupo de filtros a la variable $var.
 +
 
 +
'''Get_instance()'''
 +
Obtiene una instancia singlenton.
 +
 
 +
'''Filtros Disponibles'''
 +
Actualmente se cuenta con una serie de filtros que pueden utilizados.
 +
 
 +
'''Addslashes'''
 +
Filtra una cadena haciendo addslashes
 +
 
 +
'''Alnun'''
 +
Filtra una cadena para que contenga solo alpha-numeic.
  
'''string:''' este debe corresponder al nombre de un modelo Soporta argumento variable.
+
'''Alpha'''
 +
Filtra una cadena para que contenga solo alfabético
  
'''field:''' campos a cargar separados por coma
+
'''Date'''
 +
Filtra una cadena para que contenga el formato fecha, debe cumplir con un patrón.
  
'''except:''' campos que no se cargaran separados por coma
+
'''Digit'''
 +
Filtra una cadena para que contenga solo Dígitos, sigue siendo un string lo que retorna el
 +
método.
  
'''suffix:''' sufijo para el atributo en el controlador
+
'''Htmlentities'''
 +
Filtra una cadena y hace que todos los caracteres que tengan una entidad equivalente en
 +
HTML serán cambiados a esas entidades.
  
'''preffix:''' prefijo para el atributo en el controlador
+
'''htmlspecialchars'''
 +
Filtra una cadena htmlspacialchars.
  
<source lang=php>
+
'''Upper'''
//Ejemplo1:
+
Filtra una cadena para que contenga solo Mayusculas
$usuario = $this->Usuario->find(1);
 
$this->load_record($usuario);
 
  
//Ejemplo2:
+
'''Trim'''
$usuario = $this->Usuario->find(1);
+
Filtra una cadena haciendo trim
$this->load_record($usuario, 'except: id, sexo');
 
  
//Ejemplo3:
+
'''Striptags'''
$usuario = $this->Usuario->find(1);
+
Filtra una cadena para eliminar etiquetas
$this->load_record($usuario, 'field: nombre, apellido');
 
  
//Ejemplo4:
+
'''Stripspace'''
$usuario = $this->Usuario->find(1);
+
Filtra una cadena para eliminar espacios
$this->load_record($usuario, 'preffix: c_');
 
  
//Ejemplo5:
+
'''Stripslaches'''
$this->load_record('Usuario');
+
Filtra una cadena haciendo stripslashes
  
//Ejemplo6:
+
'''Numeric'''
$this->load_record('Usuario', 'field: nombre, apellido');
+
Filtra una cadena para que contenga solo numerico.
</source>
 
  
=='''is_numeric($valor)'''==
+
'''Nl2br'''
Evalúa si un campo es numérico o no.
+
Filtra una cadena convirtiendo caracteres de nueva linea en <br>
  
Es útil para validar la entrada de datos al recibirlos por parte de usuarios.
+
'''Md5'''
<source lang=php>
+
Filtra una cadena encriptando a md5.
<?php
 
  
class PruebaController extends ApplicationController {
+
'''Lower'''
 +
Filtra una cadena para que contenga solo minuscula.
  
  function adicionar(){
+
'''Ipv4'''
    $precio = $this->request(“precio”);
+
Filtra una cadena para que sea de tipo ipv4, debe cumplir con el patrón.
    if($this->is_numeric($precio)==false){
 
      Flash::error(“Entrada invalida para precio”);
 
      return;
 
    }
 
    /* ..*/
 
  }
 
}
 
?>
 
</source>
 
  
[[Categoría:Application Controller]]
+
'''Int'''
 +
Filtra una cadena para que sea de tipo entero, retorna un integer método.

Ten en cuenta que todas las contribuciones a KumbiaPHP Framework Wiki pueden ser editadas, modificadas o eliminadas por otros colaboradores. Si no deseas que las modifiquen sin limitaciones, no las publiques aquí.
Al mismo tiempo, asumimos que eres el autor de lo que escribiste, o lo copiaste de una fuente en el dominio público o con licencia libre (véase Proyecto:Derechos de autor para más detalles). ¡No uses textos con copyright sin permiso!

Para editar esta página, responde la pregunta que aparece abajo (más información):

Cancelar Ayuda de edición (se abre en una ventana nueva)