Ahora si vamos a empezar a programar un poquito. Ya vimos como crear nuestra [primera aplicacion con Yii framework,](https://paraisolinux.com/primera- aplicacion-con-yii/ “Primera aplicacion con Yii”) pero eso lo hacia practicamente solo. Nosotros no tocamos codigo. En cambio hoy ya vamos a empezar a escribir codigo haciendo el clasico ‘Hola Mundo!’
He supuesto que ya han investigado sobre MVC , pero si no lo han hecho no pasa nada, ya aprenderan en el camino. Pero seria mucho mas facil que se tomen unos minutos para entender el concepto con algunos videos en youtube o algunos tutos cortitos de los que abundan por la web.
Primero vamos a explicar un poco los archivos y carpetas, suponiendo que nuestro proyecto esta en public_html/testyii.
Alli se van a encontrar con estas carpetas:
De esas, la que nos interesa es la carpeta ‘protected’, que si la abren se encontraran con esto:
Y es facil entender que en la carpeta controllers van los controladores, en la carpeta models van los modelos y en la carpeta views van las vistas. Pero ademas de eso habra que entender algunas convenciones para el nombre de los archivos.
- Los controladores deben comenzar su nombre con mayusculas y estar seguido de la palabra ‘Controller’. Ej: si quiero tener un controlador ‘login’ entonces el nombre del archivo debera ser LoginController.php
- Existe un archivo de vista por cada action (mas adelante explicare que son) de un controller. Ej: si el controlador ‘login’ tiene una action que se llama ‘inicio’ entonces habra dentro de la carpeta ‘views’ una carpeta para el controlador llamada ‘login’ y dentro de ella los archivos php para las vistas que llevaran el mismo nombre que la action. En este caso ‘inicio.php’
- En la carpeta views hay otra carpeta llamada ‘layouts’ donde colocaremos las plantillas para nuestro sitio o aplicacion. Normalmente un layout tiene los elementos comunes a todo sitio, una cabecera, un footer y esas cosas.
Para crear nuestra aplicacion de Hola Mundo! vamos a usar el controlador y las vistas de la aplicacion de ejemplo que trae el framework.
Paso 1- Abrir y editar el archivo views/layouts/main.php y dejarlo solo con el siguiente contenido:
[php] [/php]
Como veran es solo una esquema basico de cualquier pagina html. La unica diferencia es que tenemos ese pequeño trozo de codigo php con un echo $content. La variable $content estara llena con todo el resultado de la vista, o sea que es como si luego yii pusiera en ese lugar automaticamente la vista.
Me olvidaba de decir que el layout main.php es que el yii usa por default si no se le especifica uno.
Paso 2- Abrir y editar el archivo controllers/SiteController.php y dejarlo solo con el siguiente contenido:
[php] render(‘index’,array(‘nombre’=>$nombre)); } } [/php]
Aqui hay varias cosas para explicar. En primer lugar, cada controlador es una clase que extiende o hereda de otra llamada Controller. Notar como el nombre de la clase sigue la misma convencion que el nombre del archivo ‘SiteController’.
Por otro lado, las acciones del controlador seran ‘por lo general’, aunque no siempre, el lugar por el que entraran los usuarios al sitio. O sea cada function puede llegar a ser una pagina distinta de un sitio, aunque no siempre. Cada accion(action) tambien tiene una forma especial para su nombre. Que seria comenzar con ‘action’ seguido del nombre de la accion con la primera letra en mayuscula.
Nosotros solo tenemos una accion, la actionIndex() y dentro he creado una variable con un nombre. Y lo de render basicamente sirve para especificar cual vista queremos usar. Porque podriamos usar cualquier vista. Y le paso un array que usaremos en la vista.
Paso 3- Abrir y editar el archivo views/site/index.php y dejarlo solo con el siguiente contenido:
[php]
Hola Mundo!
Hola
[/php]
Un simple hola mundo y como veran, la key o clave del array que le pase se transforma en una variable que yo puedo usar en la vista. Esto es muy importante y basicamente podemos pasar la cantidad de variables que se nos de la gana usando ese array.
En el navegador deberian dirigirse a localhost/testyii/index.php?r=site/index para ver el resultado:
Como veran la url no es muy linda pero basicamente nos importa la ultima parte ‘site/index’. Eso es ‘controller/action’ y mas adelante veremos como transformarlo a url amigables.
Con esta info basica ya deberian poder empezar a hacer algunas pruebas sencillas. Espero que les sirva :)