Edición de «Hola Mundo KumbiaPHP Framework»

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:
{{cleanupbox
 
|image=[[Archivo:Information_icon4.png|45px]]
 
|texto ='''Este Artículo cumple con todos los requerimientos de los Kumbieros.'''<br />
 
}}
 
 
 
 
Este ejemplo tiene como objetivo entender la creación de una primera aplicación usando [http://www.kumbiaphp.com KumbiaPHP], que nos servirá para entender la arquitectura MVC y algunas características interesantes.  
 
Este ejemplo tiene como objetivo entender la creación de una primera aplicación usando [http://www.kumbiaphp.com KumbiaPHP], que nos servirá para entender la arquitectura MVC y algunas características interesantes.  
  
 
= Creando una nueva aplicación =
 
= Creando una nueva aplicación =
  
Lo primero que debemos hacer es [https://github.com/KumbiaPHP/KumbiaPHP descargar la Versión 1.0 Beta2] de KumbiaPHP. Una vez obtenida la copia del Framework la descomprimimos en el directorio web público y renombramos la carpeta con el nombre de nuestro proyecto. Para efecto del ejemplo, llamaremos a nuestro proyecto '''kumbiaphp''' quedando la estructura de directorios de la siguiente forma:
+
Lo primero que debemos hacer es [http://sourceforge.net/projects/kumbia/files/Kumbia/KumbiaPHP%201.0/kumbiaphp_1.0b1.zip/download descargar la Versión 1.0] de KumbiaPHP. Una vez obtenida la copia del Framework la descomprimimos en el directorio web público y renombramos la carpeta con el nombre de nuestro proyecto. Para efecto del ejemplo, llamaremos a nuestro proyecto '''kumbiaphp''' quedando la [[KumbiaPHP_Framework_Versión_1.0_Spirit#Nueva_Estructura_de_Directorios|estructura de directorios]] de la siguiente forma:
  
 
     kumbiaphp/
 
     kumbiaphp/
     |-- default/
+
     |-- app
        |--app/
+
    |-- core
        |--public/
+
    |-- index.php
            |-- index.php //archivo por el que entran todas las peticiones
 
    |-- core/
 
 
   
 
   
 
Antes de continuar, vamos a verificar que todo esté trabajando bien en nuestras configuraciones a nivel de servidor web.
 
Antes de continuar, vamos a verificar que todo esté trabajando bien en nuestras configuraciones a nivel de servidor web.
Línea 24: Línea 16:
 
[[Archivo:Bienvenida_kumbiaphp_framework_1.0.png|800px|thumb|center|Pantala de Bienvenida de KumbiaPHP Framework]]
 
[[Archivo:Bienvenida_kumbiaphp_framework_1.0.png|800px|thumb|center|Pantala de Bienvenida de KumbiaPHP Framework]]
  
= Hola, ¡KumbiaPHP! =
+
= 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.
+
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.
+
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 <code>app/controllers/</code>. Aquí estarán nuestros controladores (Para más detalles, lee la documentación sobre el [[KumbiaPHP_Framework_Versión_1.0_Spirit#Explicando_dir_app |directorio app]]).
 
Nos ubicamos en el directorio <code>app/controllers/</code>. Aquí estarán nuestros controladores (Para más detalles, lee la documentación sobre el [[KumbiaPHP_Framework_Versión_1.0_Spirit#Explicando_dir_app |directorio app]]).
Línea 39: Línea 31:
 
<source lang="php">
 
<source lang="php">
 
<?php  
 
<?php  
class SaludoController extends AppController {
+
class SaludoController extends ApplicationController {
 
 
 
     public function hola()  
 
     public function hola()  
 
     {
 
     {
         //Ver método select[1]
+
         //Ver método render[1]
         View::select(NULL); //no mostramos la vista, solo el template
+
         $this->render(NULL);
 
     }
 
     }
 
}
 
}
 
</source>
 
</source>
  
Como vemos, es una clase con un método <code>hola()</code>. Nótese que también esta el sufijo <code>Controller</code> al final de la declaración de la clase: ésto la identifica como una clase controladora, y ésta hereda (<code>extends</code>) de la superclase <code>AppController</code>, con lo que adquiere las propiedades de una clase controladora.
+
Como vemos, es una clase con un método <code>hola()</code>. Nótese que también esta el sufijo <code>Controller</code> al final de la declaración de la clase: ésto la identifica como una clase controladora, y ésta hereda (<code>extends</code>) de la superclase <code>ApplicationController</code>, con lo que adquiere las propiedades de una clase controladora.
  
[1] [[http://www.kumbiaphp.com/api/beta2/class_kumbia_view.html | Método View::Select()]]
+
[1] [[KumbiaPHP_Framework_Versión_1.0_Spirit#Utilizando_el_m.C3.A9todo_render.28.24view.2C_.5B.24template.5D.29 | Método render]]
  
Para ejecutar la acción <code>hola</code> de nuestro controlador <code>saludo</code>, vamos a [http://localhost/kumbiaphp/saludo/hola/ http://localhost/kumbiaphp/saludo/hola/]. Deberíamos ver ésto:
+
Para ejecuar la acción <code>hola</code> de nuestro controlador <code>saludo</code>, vamos a [http://localhost/kumbiaphp/saludo/hola/ http://localhost/kumbiaphp/saludo/hola/]. Deberíamos ver ésto:
  
 
[[Archivo:Saludo_controller_action_hola.png|1000px|thumb|center|Renderizando un Controller sin View]]
 
[[Archivo:Saludo_controller_action_hola.png|1000px|thumb|center|Renderizando un Controller sin View]]
Línea 64: Línea 55:
 
[[Archivo:Url-instalacion-local.png|center]]
 
[[Archivo:Url-instalacion-local.png|center]]
  
En producción, no queremos mostrar el nombre del directorio de instalación de KumbiaPHP. Para esto, simplemente hacemos que nuestro directorio <code>default/public/</code> sea el directorio público del servidor:
+
En producción, no queremos mostrar el nombre del módulo. Para eso, simplemente hacemos que nuestro directorio <code>app/</code> sea el directorio público del servidor:
  
 
[[Archivo:URL-sin-modulo.png|center]]
 
[[Archivo:URL-sin-modulo.png|center]]
Línea 80: Línea 71:
 
<source lang="php">
 
<source lang="php">
 
<?php
 
<?php
class SaludoController extends AppController {         
+
class SaludoController extends ApplicationController {         
  
 
     public function hola()  
 
     public function hola()  
 
     {
 
     {
         //quitamos el View::select(NULL);
+
         //quitamos el render
 
     }
 
     }
 
}
 
}
Línea 94: Línea 85:
  
 
<source lang="php">
 
<source lang="php">
<h1>Hola, ¡KumbiaPHP!</h1>  
+
<h1>Hola, KumbiaPHP!</h1>  
 
</source>
 
</source>
  
Línea 103: Línea 94:
 
'''KumbiaPHP''' carga la vista con el mismo nombre que la acción en el directorio con el nombre del controlador seleccionado.  
 
'''KumbiaPHP''' carga la vista con el mismo nombre que la acción en el directorio con el nombre del controlador seleccionado.  
  
Las vistas permiten dar formato a la salida al usuario usando PHP incrustado en HTML; por esto las vistas poseen extensión <code>.phtml</code>, a diferencia de los controladores, que poseen PHP puro, y por esto su extensión <code>.php</code>.
+
Las vistas permiten dar formato a la salida al usuario usando PHP embebido en HTML; por esto las vistas poseen extensión <code>.phtml</code>, a diferencia de los controladores, que poseen PHP puro, y por esto su extensión <code>.php</code>.
  
 
=Agregando más Contenido=
 
=Agregando más Contenido=
Línea 113: Línea 104:
 
<source lang="php">
 
<source lang="php">
 
<?php  
 
<?php  
   class SaludoController extends AppController {
+
   class SaludoController extends ApplicationController {
 
 
 
       public function hola() {
 
       public function hola() {
 
         $this->fecha = date("Y-m-d H:i");
 
         $this->fecha = date("Y-m-d H:i");
Línea 140: Línea 130:
 
<source lang="php">
 
<source lang="php">
 
<?php  
 
<?php  
   class SaludoController extends AppController {
+
   class SaludoController extends ApplicationController {
 
 
      //definimos un parametro en la acción al que llamamos $nombre
 
 
       public function hola($nombre) {
 
       public function hola($nombre) {
 
         $this->fecha = date("Y-m-d H:i");
 
         $this->fecha = date("Y-m-d H:i");
Línea 159: Línea 147:
 
</source>
 
</source>
  
Si ahora entramos a [http://localhost/kumbiaphp/saludo/hola/pepito/ http://localhost/kumbiaphp/saludo/hola/pepito/], nos mostrará por pantalla el saludo junto con el nombre ("pepito"), y la fecha.
+
Si ahora entramos a [http://localhost/kumbiaphp/saludo/pepito/ http://localhost/kumbiaphp/saludo/pepito/], nos mostrará por pantalla el saludo junto con el nombre ("pepito"), y la fecha.
  
 
=Repitiendo la Historia=
 
=Repitiendo la Historia=
Línea 169: Línea 157:
 
<source lang="php">
 
<source lang="php">
 
<?php  
 
<?php  
   class SaludoController extends AppController {
+
   class SaludoController extends ApplicationController {
 
 
 
       public function hola() {
 
       public function hola() {
 
         $this->fecha = date("Y-m-d H:i");
 
         $this->fecha = date("Y-m-d H:i");
Línea 186: Línea 173:
 
<source lang="php">
 
<source lang="php">
 
<h1>Adiós</h1>
 
<h1>Adiós</h1>
<?php echo Html::link('saludo/hola/', 'Volver a Saludar') ?>
+
<?php echo link_to('saludo/hola/', 'Volver a Saludar') ?>
 
</source>
 
</source>
  
Línea 193: Línea 180:
 
[[Archivo:View_adios.png|1000px|thumb|center|Renderizando la Vista adios y muestra un link que vuelve a la vista hola]]
 
[[Archivo:View_adios.png|1000px|thumb|center|Renderizando la Vista adios y muestra un link que vuelve a la vista hola]]
  
<code>Html::link()</code>, es un Método del [[helper]] [https://github.com/manuelj555/Guia-de-Referencia-KumbiaPHP/blob/master/helpers/html.rst HTML] que ofrece KumbiaPHP para facilitar al momento de programar. Podríamos escribir el HTML directamente, poniendo, por ejemplo <code><a href="kumbiaphp/saludo/index">Volver a Saludar</a></code>, pero esto trae un problema: Si ahora quisiéramos renombrar nuestro proyecto de <code>kumbiaphp</code> a <code>demo</code>, tendríamos que modificar todos los vínculos.
+
<code>link_to()</code>, es un [[helper]] que ofrece KumbiaPHP para facilitar al momento de programar. Podríamos escribir el HTML directamente, poniendo, por ejemplo <code><a href="kumbiaphp/saludo/index">Volver a Saludar</a></code>, pero esto trae un problema: Si ahora quisiéramos renombrar nuestro proyecto de <code>kumbiaphp</code> a <code>demo</code>, tendríamos que modificar todos los vínculos.
  
 
[[Categoría:Tutoriales KumbiaPHP]]
 
[[Categoría:Tutoriales KumbiaPHP]]

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)

Plantilla usada en esta página: