Tutorial Sencillo Yii Framework - CEFET-MG Timóteo

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.
240KB Größe 178 Downloads 187 vistas
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: