2.1.3. Mi Primera Aplicación con KumbiaPHP

 

Luego que explicamos los pasos para configurar KumbiaPHP y ver su pantalla de bienvenida, se viene hacer el primer ejemplo el cual tiene como objetivo entender elementos básicos al momento de utilizar el framework que servirá para entender la arquitectura MVC (Modelo-Vista-Controlador).

2.1.3.1. Hola, KumbiaPHP!

Ahora escribiremos el famoso “Hola, Mundo!” pero con un pequeño cambio: Diremos “Hola, KumbiaPHP!”. Pensando en esto, recordemos el modelo MVC, según esto, KumbiaPHP debería aceptar una petición, que buscaría en controlador y, en éste, una acción que atendería la petición. Luego, KumbiaPHP utilizará esta información de controlador y acción para buscar la vista asociada a la petición.

Para escribir el código de nuestro “Hola, KumbiaPHP!” no necesitamos sino un controlador y una vista. No necesitamos modelos, ya que no estamos trabajando con información de una base de datos.

Nos ubicamos en el directorio /path/to/kumbiaphp/app/controllers/. Aquí estarán nuestros controladores (Para más detalles, lee la documentación sobre el directorio app). Para crear un controlador, es importante tener en cuenta las convenciones de nombre que utiliza el Framework. llamaremos a nuestro controlador saludo_controller.php. Nótese el sufijo _controller.php esto forma parte de la convención de nombres, y hace que KumbiaPHP identifique ese archivo como un controlador.

2.1.3.2. El Controlador

Ahora agregamos contenido al controlador app/controllers/saludo_controller.php

<?php
/**
* Controller Saludo
*/
class SaludoController extends AppController {
public function hola() {

}
}

En el código tenemos la definición de la class SaludoController, Nótese que también esta el sufijo Controller al final de la declaración de la clase, esto la identifica como una clase controladora, y ésta hereda (extends) de la superclase AppController, con lo que adquiere las propiedades de una clase controladora, además existe el método hola().

2.1.3.3. La Vista

Para poder ver la salida que envía el controlador, es necesario crear la vista asociada a la acción. Primero, creamos un directorio con el mismo nombre de nuestro controlador (en este caso debería llamarse saludo), y dentro de este estarán todas las vistas asociadas a las acciones que necesiten mostrar alguna información. En nuestro ejemplo llamamos a una acción llamada hola; por lo tanto, creamos un archivo llamado app/views/saludo/hola.phtml. Una vez creado este archivo, le agregamos un poco de contenido:

<h1>Hola, KumbiaPHP!</h1>

A continuación se prueba al acceder a la siguiente URL: http://localhost/ kumbiaphp/saludo/hola/ y el resultado debe ser como muestra la figura 2.2.

clip_image002

Figura 2.2: Contenido de la vista hola.phtml

2.1.3.4. KumbiaPHP y sus URLs

Para entender el funcionamiento del framework es importante entender sus URLs, la figura 2.3muestra una URL típica en KumbiaPHP.

clip_image004

Figura 2.3: URL en KumbiaPHP

En KumbiaPHP no existen las extensiones .php esto porque en primera instancia hay reescritura de URLs y además cuenta con un front-controller encargado de recibir todas las peticiones (más adelante se explicará en detalle).

Cualquier otra información pasada por URL es tomada como parámetro de la acción, a propósito de nuestra aplicación como muestra la figura 2.4.

clip_image006

Figura 2.4: URL con parámetros

Esto es útil para evitar que tener estar enviando parámetros GET de la forma ?var=valor&var2=valor2 (esto es, de la forma tradicional como se viene utilizando PHP), la cual revela información sobre la arquitectura de software que se dispone en el servidor. Además, hacen que nuestra URL se vea mal.

2.1.3.5. Agregando más contenido

Agregaremos algo de contenido dinámico a nuestro proyecto, para que no sea tan aburrido. Mostraremos la hora y la fecha, usando la función date().

Cambiamos un poco el controlador app/controllers/saludo_controller.php

<?php
/**
* Controller Saludo
*/
class SaludoController extends AppController {
/**
* método para saludar
*/
public function hola() {
$this->fecha = date(“Y-m-d H:i”);
}
}

KumbiaPHP implementa las variables de instancia lo que significa que todos atributos definidos en el controller, pasará automáticamente a la vista, en el código anterior tenemos el atributo $this->fecha este pasará a la vista como una variable llamada $fecha.

En la vista que se creo en la sección 2.1.3.3 y agregamos.

<h1>Hola, KumbiaPHP!</h1>
<?php echo $fecha ?>

Ahora, si volvemos a http://localhost/kumbiaphp/saludo/hola/, obtendremos la hora y fecha del momento en que se haga la petición, como se muestra en la figura 2.5.

clip_image008

Figura 2.5: Hora y fecha de petición

Para agregarle calidez al asunto, le preguntaremos al usuario su nombre vía

parámetro 2.1.3.4, volvemos a editar el controlador saludo_controller.php…

<?php
/**
* Controller Saludo
*/
class SaludoController extends AppController
{
/**
* método para saludar
* @param string $nombre
*/
public function hola($nombre)
{
$this->fecha = date(“Y-m-d H:i”);
$this->nombre = $nombre;
}
}

Editamos la vista app/views/saludo/hola.phtml

<h1>Hola <?php echo $nombre; ?>, ¡Qué lindo es utilizar KumbiaPHP! ¿cierto?</h1>
<?php echo $fecha ?>

Si ahora entramos a http://localhost/kumbiaphp/saludo/CaChi/, nos mostrará en el navegador web el saludo junto con el nombre colocado y la fecha actual, como se muestra en la figura 2.6.

clip_image010

Figura 2.6: Saludando al Usuario

2.1.3.6. Repitiendo la Historia

Ahora vamos otra acción llamada adios() y como su nombre indica haremos el proceso inverso a saludar, es decir despedir a los usuarios.

<?php
/**
* Controller Saludo
*/
class SaludoController extends AppController {
/**
* método para saludar
* @param string $nombre
*/
public function hola($nombre) {
$this->fecha = date(“Y-m-d H:i”);
$this->nombre = $nombre;
}
/**
* método para despedir
*/
public function adios() {

}
}

Agregamos una nueva vista para presentar el contenido de la acción adios() y si recordamos lo que se explicó en la sección 2.1.3.3 deberíamos crear una vista app/views/saludo/adios.phtml con el siguiente contenido.

<h1>Ops! se ha ido 🙁 </h1>
<?php echo Html::link(‘saludo/hola/CaChi/’, ‘Volver a Saludar’); ?>

Si ingresa al siguiente enlace http://localhost/kumbiaphp/saludo/adios/ se verá un nuevo texto, y un vínculo a la acción hola(), como se muestra en la figura 2.7.

clip_image012

Figura 2.7: Vista de adiós al usuario.

Html::link(), es uno de los tantos helper que ofrece KumbiaPHP para facilitar al momento de programar en las vistas. Podríamos escribir el código HTML directamente, colocando <a href=”kumbiaphp/saludo/hola/CaChi/”>Volver a Saludar</a>, pero esto puede conllevar a un problema, imagine que quisiera cambiar de nombre a su proyecto de kumbiaphp a demo, tendríamos que modificar todos los vínculos, los helpers de KumbiaPHP resuelven estos problemas.

Leave a Reply

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