Diferencia entre revisiones de «Primera Aplicación en Kumbia»

De KumbiaPHP Framework Wiki
 
(No se muestran 10 ediciones intermedias de 4 usuarios)
Línea 1: Línea 1:
 
El presente capítulo tiene como objetivo entender la creación de una primera aplicación usando Kumbia, que nos servirá para entender la arquitectura MVC y algunos características interesantes.  
 
El presente capítulo tiene como objetivo entender la creación de una primera aplicación usando Kumbia, que nos servirá para entender la arquitectura MVC y algunos características interesantes.  
 +
 +
'''[[Hola_Mundo_KumbiaPHP_Framework| Ver Ejemplo adaptado a la versión 1.0]]'''
  
 
= Creando una nueva aplicación =
 
= Creando una nueva aplicación =
Línea 18: Línea 20:
 
Dentro de este archivo colocaremos las siguientes lineas de codigo.
 
Dentro de este archivo colocaremos las siguientes lineas de codigo.
  
'''saludos_controller.php'''
+
'''saludo_controller.php'''
 
<source lang="php" line>
 
<source lang="php" line>
 
<?php  
 
<?php  
Línea 46: Línea 48:
 
<?php
 
<?php
 
   class SaludoController extends ApplicationController {         
 
   class SaludoController extends ApplicationController {         
       function hola(){
+
       function index(){
 
       }
 
       }
 
   }
 
   }
Línea 75: Línea 77:
  
 
Ahora vamos a mostrar la hora y fecha haciendo uso de la función date(), con esto evitamos tener un contenido estático y tener un sitio mas dinámico, editamos el archivo saludo_controller.php.
 
Ahora vamos a mostrar la hora y fecha haciendo uso de la función date(), con esto evitamos tener un contenido estático y tener un sitio mas dinámico, editamos el archivo saludo_controller.php.
saludo_controller.php
 
  
 
<source lang="php" line>
 
<source lang="php" line>
 
<?php  
 
<?php  
   public class SaludoController extends ApplicationController {
+
   class SaludoController extends ApplicationController {
 
 
 
       public function index() {
 
       public function index() {
 
         $this->fecha = date("Y-m-d H:i");
 
         $this->fecha = date("Y-m-d H:i");
 
       }
 
       }
 
 
   }
 
   }
 
?>  
 
?>  
Línea 95: Línea 94:
 
<source lang="php" line>
 
<source lang="php" line>
 
<h1>Hola Kumbia</h1>  
 
<h1>Hola Kumbia</h1>  
<? echo $fecha ?>  
+
<?php echo $fecha ?>  
 
</source>
 
</source>
  
'''Nota'''
+
'''Nota:''' Cuando hacemos uso de $this sobre una variable en el controlador, como se puede apreciar con $this->fecha, automáticamente tenemos esa variable en la vista de la siguiente manera $fecha, esto porque Kumbia trabaja con variables de instancia.  
Cuando hacemos uso $this sobre una variable en el controlador, como se puede apreciar con $this->fecha automáticamente tenemos esa variable en la vista de la siguiente manera $fecha, esto porque kumbia trabaja con variable de instancia.  
+
Ahora si volvemos a ejecutar http://localhost/kumbia/saludo/index obtendremos la hora y fecha del momento en que se haga la petición.
Ahora si volvemos a ejecutar http://localhost/kumbia/saludo/index obtendremos la hora y fecha del momento que se haga la petición tal como se muestra en la imagen.
 
 
 
  
 
=Repitiendo la Historia=
 
=Repitiendo la Historia=
  
Ahora vamos a crear otro controlador que lo llamaremos despedida haciendo memoria tendremos un archivo en apps/default/controllers/despedida_controller.php
+
Ahora vamos a crear otro controlador que lo llamaremos despedida haciendo memoria tendremos un archivo en:
  
despedida_controller.php  
+
'''apps/default/controllers/despedida_controller.php'''
  
 
<source lang="php" line>
 
<source lang="php" line>
 
<?php  
 
<?php  
public class DespedidaController extends ApplicationController {
+
class DespedidaController extends ApplicationController {
  public function adios() {
+
      public function adios() {
 
       }
 
       }
  }
 
 
}
 
}
 
?>  
 
?>  
 
</source>
 
</source>
  
Tal como se menciona arriba creamos una vista con el nombre de la acción en este caso nuestra vista en apps/default/views/despedida/adios.phtml
+
Tal como se menciona arriba creamos una vista con el nombre de la acción en este caso nuestra vista en:
  
adios.phtml  
+
'''apps/default/views/despedida/adios.phtml'''
  
 
<source lang="php" line>
 
<source lang="php" line>
<h1>Adios</h1>
+
<h1>Adiós</h1>
<? echo link_to("saludo/index", "Volver a Saludar") ?>
+
<?php echo link_to("saludo/index", "Volver a Saludar") ?>
 
</source>
 
</source>
  
 
Ahora colocamos en nuestro navegador http://localhost/kumbia/despedida/adios obtendremos un texto y un vinculo hacia nuestro controlador saludo y la acción index.
 
Ahora colocamos en nuestro navegador http://localhost/kumbia/despedida/adios obtendremos un texto y un vinculo hacia nuestro controlador saludo y la acción index.
  
link_to, es un helper que ofrece kumbia para facilitar al momento de programar este helper es equivalente hacer
+
'''link_to''', es un helper que ofrece kumbia para facilitar al momento de programar, este helper es equivalente a hacer
<a href="kumbia/saludo/index">Volver a Saludar</a> esto funciona bien, pero que sucederia si decidimos cambiar el nombre de la aplicacion de kumbia a demo por ejemplo, significa que deberias cambiar los vinculos de la aplicación para que apunten a la nueva ubicación.
+
<source lang="html4strict" line>
 +
<a href="kumbia/saludo/index">Volver a Saludar</a>
 +
</source>
 +
esto funciona bien, pero que sucedería si decidimos cambiar el nombre de la aplicación de kumbia a demo por ejemplo, significa que deberías cambiar los vínculos de la aplicación para que apunten a la nueva ubicación.

Revisión actual del 18:33 17 nov 2009

El presente capítulo tiene como objetivo entender la creación de una primera aplicación usando Kumbia, que nos servirá para entender la arquitectura MVC y algunos características interesantes.

Ver Ejemplo adaptado a la versión 1.0

Creando una nueva aplicación[editar]

Una vez obtenida la copia del framework descomprimimos y renombramos la carpeta con el nombre de nuestro proyecto, para efecto del ejemplo llamaremos a nuestro proyecto kumbia, tal como se muestra en la imagen.

Dentro del directorio Kumbia y se hace énfasis que kumbia es nuestro proyecto este podría tener cualquier otro nombre, tendremos un árbol de directorios tal como se muestra en la siguiente imagen.

Antes de continuar vamos a verificar que todo este trabajando bien en nuestras configuraciones a nivel de servidor web, para esto abrimos nuestro navegador web y colocamos http://localhost/kumbia, si todo esta funcionando bien debería mostrarnos la siguiente imagen.

Hola Kumbia[editar]

Ahora tenemos que escribir el famosos Hola Mundo! pero nosotros hicimos un pequeño cambio y sera Hola Kumbia! Pensando en esto recordemos el modelo MVC. Según esto, Kumbia debería aceptar una petición que buscaría en controlador y en éste, una acción que atendería la petición, luego el controlador utilizaría una vista para mostrar la información al usuario. Para escribir el código de nuestro Hola Kumbia!, no necesitamos sino un controlador y una vista. No necesitamos modelos ya que no estamos trabajando la información de una base de datos.

Nos ubicamos en el directorio apps/default/controllers aquí estarán nuestros controladores, para crear un controlador es importante tener en cuenta las convenciones de nombre que utiliza el Framework, para entender mejor nosotros llamaremos a nuestro controlador saludo_controller.php nótese el sufijo _controller.php esto forma parte de la convención de nombre y esto hace que Kumbia identifique ese archivo como un controlador.

Dentro de este archivo colocaremos las siguientes lineas de codigo.

saludo_controller.php

<?php 
class SaludoController extends ApplicationController {
    public function index() {}
}
?>

como vemos en una clase con un método index, notese que también esta el sufijo Controller al final de la declaración de la clase esto la identifica como una clase controladora y esta hereda (extends) de la superclase ApplicationController con lo que adquiere las propiedades de una clase controladora.

Kumbia URLS[editar]

Para continuar de una manera que vayamos entendiendo el funcionamiento del framework es importante entender sus URL, hagamos una descomposición de esta URL http://localhost/kumbia/saludo/index


http://localhost => Dominio
       /kumbia => Nombre del Proyecto
            /saludo => Nombre del Controlador
               /index => Nombre de una Accion del Controlador

Cualquier otra información pasada por URL es tomada como parámetro para propósito de nuestra aplicación.

Nuestra Primera Acción[editar]

Vamos a ejecutar desde el navegador nuestro controlador saludo y la acción index de la siguiente manera http://localhost/kumbia/saludo/index

<?php
   class SaludoController extends ApplicationController {         
      function index(){
      }
   }
?>

Como podemos darnos cuenta tenemos una acción vacía sin nada que mostrar al usuario que realizo la solicitud, esto es sencillo de deducir ya que no tenemos ninguna vista asociada a nuestra acción. Agreguemosle contenido a la acción index, esto lo hacemos creando un directorio con el mismo nombre de nuestro controlador en este caso deberia llamarse saludo y dentro de este estaran todas las vistas asociadas a las acciones que necesiten mostrar alguna información.

Para efecto del ejemplo llamamos a una acción llamada index por lo tanto creamos un archivo llamado index.phtml fijese que el archivo se llama igual que la acción, este archivo lo creamos en el directorio

apps/default/views/saludo/index.phtml

Una vez creado este archivo le agregamos un poco de contenido...

<h1>Hola Kumbia</h1>

Ahora si volvemos ejecutar desde nuestro navegador web http://localhost/kumbia/saludo/index si nos debe mostrar el contenido del archivo index.phtml

Ahora si visualizamos en el explorador se entiende que Kumbia automáticamente carga la vista con el mismo nombre la acción en el directorio con el nombre del controlador seleccionado. Poniendo a consideración podríamos decir que las vistas permiten la salida al usuario usando PHP embebido en HTML. Por esto las vistas poseen extensión phtml a diferencia de los controladores que poseen PHP puro y por esto su extensión .php.

Pues como se ve ya hemos ejecutado la primera acción en Kumbia esto nos permite apreciar el comportamiento del framework.

Agregando más Contenido[editar]

Ahora vamos a mostrar la hora y fecha haciendo uso de la función date(), con esto evitamos tener un contenido estático y tener un sitio mas dinámico, editamos el archivo saludo_controller.php.

<?php 
   class SaludoController extends ApplicationController {
      public function index() {
         $this->fecha = date("Y-m-d H:i");
      }
   }
?>

Y la vista index.phtml quedaria asi:

index.phtml

<h1>Hola Kumbia</h1> 
<?php echo $fecha ?>

Nota: Cuando hacemos uso de $this sobre una variable en el controlador, como se puede apreciar con $this->fecha, automáticamente tenemos esa variable en la vista de la siguiente manera $fecha, esto porque Kumbia trabaja con variables de instancia. Ahora si volvemos a ejecutar http://localhost/kumbia/saludo/index obtendremos la hora y fecha del momento en que se haga la petición.

Repitiendo la Historia[editar]

Ahora vamos a crear otro controlador que lo llamaremos despedida haciendo memoria tendremos un archivo en:

apps/default/controllers/despedida_controller.php
<?php 
class DespedidaController extends ApplicationController {
      public function adios() {
      }
}
?>

Tal como se menciona arriba creamos una vista con el nombre de la acción en este caso nuestra vista en:

apps/default/views/despedida/adios.phtml
<h1>Adiós</h1>
<?php echo link_to("saludo/index", "Volver a Saludar") ?>

Ahora colocamos en nuestro navegador http://localhost/kumbia/despedida/adios obtendremos un texto y un vinculo hacia nuestro controlador saludo y la acción index.

link_to, es un helper que ofrece kumbia para facilitar al momento de programar, este helper es equivalente a hacer

<a href="kumbia/saludo/index">Volver a Saludar</a>

esto funciona bien, pero que sucedería si decidimos cambiar el nombre de la aplicación de kumbia a demo por ejemplo, significa que deberías cambiar los vínculos de la aplicación para que apunten a la nueva ubicación.