Lanzamiento de Prueba con Yii
En ésta sección, se describe cómo crear el esqueleto de una aplicación que nos servirá como punto de partida. Por simplicidad, asumimos que la raíz de nuestro Servidor es /wwwroot
y que el URL correspondiente es http://www.example.com/
.
Instalando Yii
Inicialmente instalamos el framework de Yii. Obtenemos una copia del archivo (versión 1.1.1 o superior) en www.yiiframework.com y la descomprimimos en el directorio /wwwroot/yii
. Chequeamos que allí se encuentra un directorio /wwwroot/yii/framework
.
Consejo: El framework de Yii puede instalarse en cualquier lugar del sistema de archivos. Su directorio
framework
contiene todo el código estructural y es el único directorio necesario para implementar una aplicación. Una única instalación de Yii puede ser utilizada por múltiples aplicaciones Yii.
Luego de haber instalado Yii, abrimos una ventana nueva en el explorador y accedemos a la URL http://www.example.com/yii/requirements/index.php
. Esta página muestra el revisor de requerimientos de la versión de Yii descargada. Para la aplicación de blog, al margen de los requisitos mínimos de Yii, se necesitan habilitar las extensiones PHP pdo
y pdo_sqlite
para acceder a las bases de datos SQLite.
Creando el Esqueleto de la Aplicación
Luego utilizamos la herramienta yiic
para crear una aplicación esqueleto bajo el directorio /wwwroot/blog
. La herramienta yiic
es una herramienta de línea de comandos incluida en Yii. Puede ser utilizada para generar código para diferentes tareas repetitivas.
Abrimos una ventana de comandos y ejecutamos el siguiente comando:
% /wwwroot/Yii/framework/yiic webapp /wwwroot/blog Create a Web application under '/wwwroot/blog'? [Yes|No]y ......
Consejo: Para poder utilizar la herramienta
yiic
tal como se indica, el programa CLI PHP debe estar en el camino (path) de búsqueda de comandos. De lo contrario, se puede utilizar el siguiente commando:path/to/php /wwwroot/Yii/framework/yiic.php webapp /wwwroot/blog
Para probar la aplicación que acabamos de crear, abrimos el explorador web y navegamos a la URL http://example.com/blog/index.php
. Deberíamos ver que nuestra aplicación posee cuatro páginas funcionando: inicio, "Acerca de", contacto y la página para iniciar sesión.
A continuación, describimos brevemente lo que tenemos en la aplicación esqueleto.
Script de Entrada
Tenemos un archivo llamado script de entrada /wwwroot/blog/index.php
que tiene el siguiente contenido:
$yii='/wwwroot/framework/yii.php'; $config=dirname(__FILE__).'/protected/config/main.php'; // remove the following line when in production mode defined('YII_DEBUG') or define('YII_DEBUG',true); require_once($yii); Yii::createWebApplication($config)->run();
Este es el único script al que los usuarios Web tienen acceso directamente. El script primero incluye el archivo de inicialización de Yii yii.php
. Luego crea una instancia de la aplicación con la configuración especificada y luego ejecuta la aplicación.
Directorio Base de la Aplicación
También tenemos un directorio base de la aplicación /wwwroot/blog/protected
. La mayoría de nuestro código y datos estarán ubicados bajo este directorio, y debería estar protegido del accesos de usuarios Web. Para el uso en Apache httpd Web Server, bajo este directorio creamos un archivo .htaccess
con el siguiente contenido:
deny from all
Para otros servidores, por favor revisar el manual correspondiente sobre la protección de directorios de usuarios Web.
Flujo de la Aplicación
Para facilitar la comprensión del funcionamiento de Yii, describimos el flujo en nuestra aplicación esqueleto cuando un usuario accede a la página de contacto:
- El usuario hace una solicitud a la URL
http://www.example.com/blog/index.php?r=site/contact
; - El script de entrada es ejecutado por el Servidor para procesar la solicitud;
- Una instancia de la aplicación es creada y configurada con los valores iniciales especificados en el archivo de configuración de la aplicación
/wwwroot/blog/protected/config/main.php
; - La aplicación resuelve la solicitud en un controlador y una acción de controlador. Para la solicitud de la página de contacto, ésta se resuelve como el controlador de
sitio
(site
) y la acción decontacto
(contact
). - La aplicación crea el controlador
site
en términos de una instanciaSiteController
y luego la ejecuta; - La instancia
SiteController
ejecuta la accióncontact
al llamar a su métodoactionContact()
; - El método
actionContact
genera una vista) llamadacontact
al usuario Web. Internamente, esto se logra al incluir el archivo de vista/wwwroot/blog/protected/views/site/contact.php
e incluyendo el resultado en el archivo de layout/wwwroot/blog/protected/views/layouts/column1.php
.