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/
.
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.
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.
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.
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.
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:
http://www.example.com/blog/index.php?r=site/contact
;/wwwroot/blog/protected/config/main.php
;sitio
(site
) y la acción de contacto
(contact
).site
en términos de una instancia SiteController
y luego la ejecuta; SiteController
ejecuta la acción contact
al llamar a su método actionContact()
;actionContact
genera una vista) llamada contact
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
.
Found a typo or you think this page needs improvement?
Edit it on github !
Signup or Login in order to comment.