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 } |
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.
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.
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.
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 |
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> |
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.
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 |
Editamos la vista app/views/saludo/hola.phtml
<h1>Hola <?php echo $nombre; ?>, ¡Qué lindo es utilizar KumbiaPHP! ¿cierto?</h1> |
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.
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 } |
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> |
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.
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.