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: