3.2. Las Acciones

Las acciones son la parte fundamental en la aplicación, puesto que contienen el flujo en que la aplicación actuará ante ciertas peticiones. Las acciones utilizan el modelo y definen variables para la vista. Cuando se realiza una petición web en una aplicación KumbiaPHP, la URL define una acción y los parámetros de la petición. Ver sección 2.1.3.4

Las acciones son métodos de una clase controladora llamada ClassController que hereda de la clase AppController y pueden o no ser agrupadas en módulos.

3.2.1. Las acciones y las vistas

Cada vez que se ejecuta una acción KumbiaPHP buscará entonces una vista (view) con el mismo nombre de la acción. Este comportamiento se ha definido por defecto. Normalmente las peticiones deben dar una respuesta al cliente que la ha solicitado, entonces si tenemos una acción llamada saludo() debería existir una vista asociada a esta acción llamada saludo.phtml. Habrá un capítulo mas extenso dedicado a la explicación de las vistas en KumbiaPHP.

3.2.2. Obtener valores desde una acción

Las URLs de KumbiaPHP 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 definidas en el controlador.

Tomemos la URL:

http://www.dominio.com/noticias/ver/12/

  • El Controlador: noticias
  • La acción: ver
  • Parámetros: 12

<?php
/**
* Controller Noticia
*/
class NoticiasController extends AppController{
/**
* método para ver la noticia
* @param int $id
*/
public function ver($id){
echo $this->controller_name; //noticias
echo $this->action_name; //ver
//Un array con todos los parámetros enviados a la acción
var_dump($this->parameters);
}
}

Es importante notar la relación que guardan los parámetros enviados por URL con la acción. En este sentido KumbiaPHP tiene una característica, que hace seguro el proceso de ejecutar las acciones y es que se limita el envío de parámetros tal como se define en la método (acción). Lo que indica que todos los parámetros enviados por URL son argumentos que recibe la acción. ver sección 2.1.3.4

En el ejemplo anterior se definió en la acción ver($id) un solo parámetro, esto quiere decir que si no se envía ese parámetro o se intentan enviar más parámetros adicionales KumbiaPHP lanzará una exception (en producción mostrará un error 404). Este comportamiento es por defecto en el framework y se puede cambiar para determinados escenarios según el propósito de nuestra aplicación para la ejecución de una acción.

Tomando el ejemplo «Hola Mundo» ponga en práctica lo antes explicado y lo hará enviando parámetros adicionales al método hola($nombre) el cual sólo recibe un sólo parámetro (el nombre) http://localhost/kumbiaphp/saludo/hola/CaChi/adicional, en la figura 3.1 verá la excepción generada por KumbiaPHP.

clip_image002

Figura 3.1: Excepción de Parámetros erróneos.

Siguiendo en el mismo ejemplo imaginemos que requerimos que la ejecución de la acción hola() obvie la cantidad de parámetros enviados por URL, para esto solo tenemos que indicarle a KumbiaPHP mediante el atributo $limit_params que descarte el número de parámetros que se pasan por URL.

<?php
/**
* Controller Saludo
*/
class SaludoController extends AppController {
/**
* Limita la cantidad correcta de
* parámetros de una action
*/
public $limit_params = FALSE;
… métodos …
}

Cuando tiene el valor FALSE como se explicó antes, descarta la cantidad de parámetros de la acción. Ingresa a la siguiente URL http://localhost/kumbiaphp/saludo/hola/CaChi/param2/param3/ y verá como ya no esta la excepción de la figura 3.1 y podrá ver la vista de la acción como muestra la figura 3.2.

clip_image004

Figura 3.2: Descartando la cantidad de parámetros de la acción.

Leave a Reply

Your email address will not be published. Required fields are marked *