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 1: Línea 1:
='''ApplicationController'''=
+
'''ApplicationController'''
  
 
Es la clase principal utilizada para crear controladores, que son la primera parte del
 
Es la clase principal utilizada para crear controladores, que son la primera parte del
 
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
 +
• Es sencilla de usar
  
*Automatiza la interacción entre la lógica y la presentación
+
'''Métodos de la Clase ApplicationController'''
 
 
*Es sencilla de usar
 
 
 
='''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)