Tutorial Sencillo Yii Framework - CEFET

Tutorial Sencillo
Yii Framework
Yii Framework
http://www.yiiframework.com
La guia definitiva para Yii
http://www.yiiframework.com/doc/guide/1.1/es/index
Yii Class Reference
http://www.yiiframework.com/doc/api/1.0.10
1. Instalación
Descargar el framework Yii de:
http://www.yiiframework.com/download
Descomprimir el archivo a un directorio accesible por el servicio Web. Y
cambiar el nombre del directorio a "yii".
2. Requerimento
Luego de instalar Yii, ustede puede verificar si su server satisface todos los
requerimientos para utilizar Yii. Para hacerlo debe hacer accesible el script de
verificación de requerimientos para utilizar Yii. Usted puede acceder al script
de verificación de requerimientos en la siguiente URL en un explorador Web:
http://hostname/path/to/yii/requirements/index.php 3. Creando una aplicación Yii
Por conveniencia asumimos que YiiRoot es el directorio donde Yii se
encuentra instalado y WebRoot es la ruta del documento de tu Web Server.
Ejecute yiic en la linea de comandos de la siguiente manera:
% YiiRoot/framework/yiic webapp WebRoot/sistema Esto creará una aplicación Yii esqueleto en el directorio WebRoot/testdrive.
Esta aplicación contiene la estructura de directorios requerida por la mayoría
de las aplicaciones Yii.
Sin escribir ni una sola linea de código, nosotros podemos probar nuestra
primera aplicación Yii ingresando a la siguiente URL en un explorador Web:
http://hostname/sistema/index.php 4. Base de datos
Usando alguna herramienta de administración SQLite podemos crear la base
de datos con la siguiente definición de tablas:
CREATE DATABASE `sistemasweb` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci; USE `sistemasweb`; CREATE TABLE IF NOT EXISTS `alumno` ( `id` int(11) NOT NULL AUTO_INCREMENT, `nombre` varchar(60) NOT NULL, `apellido` varchar(60) NOT NULL, `email` varchar(100) NOT NULL, `edad` int(11) NOT NULL, `ciudad` varchar(60) NOT NULL, `curso_id` int(11) NOT NULL, PRIMARY KEY (`id`), KEY `curso_id_c` (`curso_id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; CREATE TABLE IF NOT EXISTS `curso` ( `id` int(11) NOT NULL AUTO_INCREMENT, `nombre` varchar(60) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; ALTER TABLE `alumno` ADD CONSTRAINT `alumno_ibfk_1` FOREIGN KEY (`curso_id`) REFERENCES `curso` (`id`); La mayoría de las aplicaciónes Web utilizan bases de datos. Para utilizar una
base de datos, primero se debe decir a la aplicación como conectarse a la
misma. Esto se realiza modificando el archivo de configuración de
aplicación WebRoot/testdrive/protected/config/main.phpcomo se muestra a
continuación.
'db'=>array( 'connectionString'=> 'mysql:host=localhost;dbname=sistemasweb', 'username'=>'root', 'password'=>'mysql', ), 5. Implementando operaciones CRUD
Ahora comienza la parte divertida. Queremos implementar las operaciones
CRUD para las tablas alumno y curso que acabamos de crear. Esto es una
práctica común en aplicaciones prácticas.
En vez de estar lidiando con escribir el código actual podemos utilizar la
poderosa herramienta yiic nuevamente para automatizar la generación de
código por nosotros. Este proceso es también conocido como scaffolding.
Abre una ventana de línea de comandos y ejecuta los comando listados a
continuación:
% cd WebRoot/sistema % protected/yiic shell Yii Interactive Tool v1.1 (based on Yii v1.1.12) Please type 'help' for help. Type 'exit' to quit. >> model alumno generate models/alumno.php generate fixtures/alumno.php generate unit/alumnoTest.php The following model classes are successfully generated: alumno If you have a 'db' database connection, you can test these models now with: $model=alumno::model()-­‐>find(); print_r($model); >> model curso generate models/curso.php generate fixtures/curso.php generate unit/cursoTest.php The following model classes are successfully generated: curso If you have a 'db' database connection, you can test these models now with: $model=curso::model()-­‐>find(); print_r($model); >> crud alumno generate AlumnoController.php generate alumnoTest.php mkdir /Users/leonardoribeiro/Sites/sistema/protected/views/alumno generate create.php generate update.php generate index.php generate view.php generate admin.php generate _form.php generate _view.php generate _search.php Crud 'alumno' has been successfully created. You may access it via: http://hostname/path/to/index.php?r=alumno >> crud curso generate CursoController.php generate cursoTest.php mkdir /Users/leonardoribeiro/Sites/sistema/protected/views/curso generate create.php generate update.php generate index.php generate view.php generate admin.php generate _form.php generate _view.php generate _search.php Crud 'curso' has been successfully created. You may access it via: http://hostname/path/to/index.php?r=curso >> En el código anterior utilizamos el comando yiic shell para interactuar con la
aplicación esqueleto. Hemos ejecutado dos comandos: model alumno y crud
alumno. El primero genera la clase Modelo para la tabla alumno mientras que
el segundo lee el modelo alumno y genera el código necesario para las
operaciones CRUD. Lo mismo ocurre con el curso.
Vamos a disfrutar de nuestro trabajo navegando a la siguiente URL:
http://hostname/sistema/index.php?r=alumno http://hostname/sistema/index.php?r=curso Pantalla de alumnos:
Pantalla de curso:
Pantalla de registro de alumno: