Gii de Yii – Crear controllers y views

Continuando con los tutoriales de Yii esta vez vamos a empezar con otra herramienta muy buena que incluye este framework y es el generador de codigo. Una herramienta que nos ayuda a generar la estructura base de una aplicacion, por ejemplo, controladores, views, modelos, formularios e incluso CRUDs (Create Read Update Delete).

Hoy vamos a ver solo la primera parte, como crear controllers y views. En el tutorial anterior, cuando vimos como hacer el clasico Hola Mundo! con Yii, entendimos un poco como es la organizacion de archivos y carpetas pero a veces puede ser una molestia estar creando cada uno de esos archivos y carpetas a mano, y es en eso en lo que nos va a ayudar Gii, el generador de codigo de Yii.

Lo primero sera activarlo, porque por defecto viene desactivado. Para eso abrimos el archivo main.php que se encuentra dentro de protected/config y dentro de el veremos un pedazo de codigo parecido a este:

'modules'=>array(
		// uncomment the following to enable the Gii tool
		/*
		'gii'=>array(
			'class'=>'system.gii.GiiModule',
			'password'=>'mi_password',
			// If removed, Gii defaults to localhost only. Edit carefully to taste.
			'ipFilters'=>array('127.0.0.1','::1'),
		),
		*/
	),

Como veran hay una seccion comentada, deben descomentarla para que quede asi:

'modules'=>array(
		// uncomment the following to enable the Gii tool
		'gii'=>array(
			'class'=>'system.gii.GiiModule',
			'password'=>'mi_password',
			// If removed, Gii defaults to localhost only. Edit carefully to taste.
			'ipFilters'=>array('127.0.0.1','::1'),
		),
	),

Y antes de cerrar el arhivo no se olviden de cambiar la contraseña que alli aparece.
Con eso ya tienen activada la herramienta Gii. Pueden acceder a ella desde el navegador en la siguiente url: localhost/testyii/index.php?r=gii

Como veran esta es una herramienta con interfaz web. Una vez que se han logueado veran una pantalla con las opciones de este generador de codigo:

Gii

La opcion que nos interesa esta vez es ‘Controller Generator’. Al entrar en esa opcion solo vemos 2 campos. En, ‘Controller ID’ va el nombre del controlador y en ‘Actions IDs’ van las acciones que quieren separadas por coma. Ej:

controller

Al darle click a Preview, todavia no genera nada de codigo. Sino que muestra que es lo que va a crear. Y al darle click al boton Generate si crea ya todos los archivos, carpetas y codigo.

Preview Gii

Aclaraciones

  • Esta herramienta es solo para ‘ayudar’ a crear codigo.
  • Tambien puedes usar tus propios templates en vez del que viene por default.
  • Si les da algun error es por los permisos de las carpetas, habra que corregirlos.
  • Y es muy importante desactivar la herramienta en produccion porque obviamente puede generar archivos y codigo que no queremos.

Espero que les esten gustando estos pequeños tutoriales de Yii

perro

Ingeniero en Informática. Programador en PHP y Angular. Lo que mas adoro en el mundo es el conocimiento. Y el anime....y Japón...y el running...y bloguear claro y algunas otras cientos de cosas. Sigo buscando la manera de hacer mi primer millón.
guest
6 Comments
Inline Feedbacks
View all comments

[…] "CRITEO-300×250", 300, 250); 1 meneos Gii de Yii – Crear controllers y views paraisolinux.com/gii-de-yii-crear-controllers-y-views/  por GpoNsU hace […]

Ezequiel Jiménez

Una pregunta nada más, ¿por qué no usas tildes?

sefsinalas

xq es una perdida de tiempo y de todas maneras se entiende lo que escribo. Seguramente tambien se me escapan algunos otros errores como usar ‘ahi’ en vez de ‘hay’, pero son minimos y sin importancia en el mundo online.

[…] mucho el trabajo. Para crearlo no lo vamos a hacer con codigo, vamos a usar Gii. Vimos antes como crear controladores y vistas usando Gii. Ahora, entrando a la misma direccion: http://localhost/testyii/index.php?r=gii vamos a crear un […]

Juan Carlos Laurian

Hola, primero que nada, gracias por los tutoriales que has estado publicando, están muy bien explicados. Te comento que tengo un problema a la hora de crear los controladores, al final de articulo mencionas que podríamos tener problemas con los permisos de los directorios, creo que es mi caso, al tratar de generar el controlador me arroja lo siguiente en rojo: Generating code using template «/opt/lampp/htdocs/yii/framework/gii/generators/controller/templates/default»… generating controllers/ClienteController.php Unable to write the file ‘/opt/lampp/htdocs/aplicacion1/protected/controllers/ClienteController.php’. generating views/cliente/agregar.php …. done! Pero lo que no entiendo es por qué, dichos directorios si tienen permisos de lectura/escritura, yo puedo entrar con nautilus y crear/borrar… Leer mas »

sefsinalas

intenta haciendo:

sudo chmod 777 /opt/lamp/htdocs/aplicacion1/protected/controllers