Yii es un framework de desarrollo de alto rendimiento, muy flexible y versátil, escrito en PHP5 para el desarrollo rápido de aplicaciones web. Yii es software libre liberado bajo licencia BSD, y tiene la concepción de hacer las cosas de manera sencilla, elegante y rápidas, ayudando con esto a construir aplicaciones eficientes, que fácilmente pueden ser mantenidas y escaladas.
Yii
le presenta al programador un código fuente limpio, sencillo y
entendible que roza con lo intuitivo de como que hace cada trozo de
código y que significa cada elemento.
Yii es una opción
idónea para desarrollos de sistemas pequeños hasta para desarrollos de
grandes aplicaciones que necesiten garantizar la disponibilidad de la
misma.
Yii es un acrónimo de Yes, it is! proveniente de la respuesta que el proyecto Yii le da a los que por primera vez se plantean si adoptar su uso:
Is it fast? … Is it secure? … Is it professional? … Is it right for my next project? … Yes, it is!¿Es rápido? … ¿Es seguro? … ¿Es profesional? … ¿Es lo que necesito para mi próximo proyecto? … Sí, lo es!
Algunos otros frameworks existentes:
- Symfony (PHP) – symfony.com
– CakePHP (PHP) – cakephp.org
– CodeIgniter (PHP) – codeigniter.com
– Ruby on Rails (Ruby) – rubyonralis.org
– Catalyst (Perl) – catalysframework.org
– Django (Python) – diangoproject.com
– CakePHP (PHP) – cakephp.org
– CodeIgniter (PHP) – codeigniter.com
– Ruby on Rails (Ruby) – rubyonralis.org
– Catalyst (Perl) – catalysframework.org
– Django (Python) – diangoproject.com
-
Por que escoger Yii
Yii es un framework genérico de
programación Web que puede ser utilizado para todo tipo de aplicaciones
Web. Gracias a que es liviano de correr y está equipado con soluciones
de cacheo sofisticadas, es adecuado desde para desarrollar aplicaciones
de gran tráfico como portales, foros, CMS, e-commerce, etc… Hasta para
desarrollar aplicaciones de mayor complejidad que necesiten
interconexión y interoperabilidad de sistemas, bases de datos,
webservices, etc…
- Rápido
Yii sólo carga las
características que usted necesita. Tiene excelente y poderoso soporte
de caché. Esta explícitamente diseñado para trabajar eficientemente con
AJAX.
Yii es mucho más
rápido, ya que utiliza la técnica de carga diferida ampliamente, es
decir se carga, interpreta o procesa contra demanda únicamente lo que se
solicita, Por ejemplo, no se incluye un archivo de clase hasta que la
clase se utiliza por primera vez, y no se crea un objeto hasta que el
objeto se accede por primera vez. Otros frameworks sufren mucho el
impacto del rendimiento, ya que permiten una funcionalidad (por ejemplo,
conexión DB, sesión de usuario, etc…) independientemente de que se usen
o no durante una petición.
- Seguro
La seguridad es un estándar en Yii. Éste
incluye la validación de entradas, filtrado de salidas, prevención de
inyección SQL y Cross-site scripting.
Yii está equipado con medidas de
seguridad para ayudar a proteger sus aplicaciones web de ataques como
inyección SQL, cross-site scripting (XSS), cross-site request forgery (CSRF), y de manipulación de cookies (Cookie Tampering).
- Profesional
Yii le ayuda a desarrollar un código
limpio y reutilizable. Sigue el patrón MVC, lo que garantiza una clara
separación de la lógica del negocio y la presentación. Fomenta la
sinergia en equipos de desarrollo y promueve activamente métodos ágiles
de trabajo que son ideales para combinar con metodologías como SCRUM o XP
-
Yii es simple, sencillo y humilde. Ha adoptado ideas y mejores prácticas de otros frameworks, siempre enfocado al principio KISS.
Yii posee una curva de
aprendizaje menos empinada que otros framework de desarrollo como
Symfony o CakePHP, en los cuales hay que tener sólidos conocimientos de
programación orientada a objetos, experiencia en linea de comandos, uso
obligatorio formatos como YAML, etc… Al Yii no adoptar dependencia a
tantas habilidades técnicas para su funcionamiento y embeber
directamente elementos que la mayoría necesitara como jQuery y acceso a
base de datos, facilita enormemente que mayor cantidad de personas
puedan sumarse a su uso y desarrollo.
Yii permite la puesta
en marcha rápida de una aplicación, ya que no tiene mayores
requerimientos de software y dependencias para su funcionamiento. Solo
necesita un servidor web como apache, nginx ó cualquier otro con soporte a php5. No requiere de cosas como Pear ó conectar el framework a un canal de software como era el caso de Symfony. Tampoco necesitara cambios ni directivas adicionales en el PHP.ini ó en la configuración de su servidor web. Todo funcionara a la primera, pero luego queda de usted adecuar su instalación y entorno.
Características
Yii vs El Mundo
Instalar Yii
Características
Patrón MVC, Modelo – Vista – Controlador:
El árbol de directorios de Yii diferencia claramente donde ubicar
Modelos, Vistas y Controladores, así como facilita en gran medida la
interacción entre ellos.
Generación de Código, CRUD, Validaciones: Generación automática de código para el esqueleto de la aplicación, generación de módulos que cuentan con formularios que realizan select, insert, update y delete a tablas de base de datos, con elementos comunes a todo sistema web como paginación,búsquedas, menús, etc… Yii entiende la descripción de la tabla que se le indique en una base de datos y crea código que valida según cada campo de dicha tabla, es así como un campo Not Null en la base de datos sera un campo requerido en el sistema, un campo numérico no dejara al sistema enviar valores que no sean numéricos a la base de datos, un campo de texto de 100 caracteres solo permitirá en el campo de la interfaz web colocar 100 caracteres y así sucesivamente…
Poderoso soporte a Bases de Datos: Yii provee tres mecanismos para interactuar con bases de datos:
Generación de Código, CRUD, Validaciones: Generación automática de código para el esqueleto de la aplicación, generación de módulos que cuentan con formularios que realizan select, insert, update y delete a tablas de base de datos, con elementos comunes a todo sistema web como paginación,búsquedas, menús, etc… Yii entiende la descripción de la tabla que se le indique en una base de datos y crea código que valida según cada campo de dicha tabla, es así como un campo Not Null en la base de datos sera un campo requerido en el sistema, un campo numérico no dejara al sistema enviar valores que no sean numéricos a la base de datos, un campo de texto de 100 caracteres solo permitirá en el campo de la interfaz web colocar 100 caracteres y así sucesivamente…
Poderoso soporte a Bases de Datos: Yii provee tres mecanismos para interactuar con bases de datos:
Database Access Objects (DAO): Construído
sobre la extensión PHP Data Objects (PDO), los Objetos de Acceso a
Datos de Yii (DAO) habilitan el acceso a diferentes sistemas de
administración de bases de datos (DBMS) en una interfaz uniforme simple.
Las aplicaciones desarrolladas usando el DAO de Yii pueden ser
fácilmente cambiadas para usar un DBMS diferente sin la necesidad de
modificar el código de acceso a los datos. Ver Documentación Oficial
Active Record:
Los Registros Activos de Yii (AR), implementados con un enfoque
ampliamente adoptado de Mapeo Objeto-Relacional, simplifican aún más la
programación con bases de datos. Representado una tabla en términos de
una clase y una fila como una instacia de esa clase, los AR de Yii
eliminan la tarea repetitiva de escribir aquellas sentencias SQL que
tratan principalmente con las operaciones CRUD (create, read, update y
delete). Ver Documentación Oficial - Ver Documentación Oficial Active Record Relaciones
Query Builder: Permite a programadores usar métodos de una clase y propiedades para especificar partes individuales de una sentencia SQL. Ver Documentación Oficial (Ingles)
DB Migration:
Yii proporciona una herramienta de migración de base de datos que puede
realizar seguimiento de la historia de una migración de base de datos,
aplicar nuevas migraciones, o revertir existentes. Ver Documentación Oficial (Ingles)
Adicionalmente a todo esto usted puede usar la librería de acceso a bases de datos que mas le agrade como pudiera ser adodb para php.
Full Soporte Ajax, jQuery integrado:
Los desarrolladores de Yii entienden que las aplicaciones web necesitan
usar ajax, por ello jQuery es integrado en Yii y no hace falta hacer
nada al respecto para lograrlo. Yii viene con un conjunto de widgets
AJAX, tales como autocompletado en campos de entrada, árbol (treeview),
red de datos (datagrid), que permiten escribir, de forma extremadamente
simple interfaces de usuarios altamente eficientes y versátiles.
Autenticación y Autorización:
Yii tiene incorporado mecanismos de autenticación y autorización muy
completos que permiten la adecuación para necesidades especiales.
También es compatible con autorización a través del control de acceso
basado en roles.Yii autentica por defecto de manera rápida y sencilla
contra usuarios en un archivo php (sistemayii/protected/components/UserIdentity.php) donde se pueden agregar los necesarios, también claro esta contra una base de datos, un LDAP, etc..
Gestión de errores y logging:
La gestión de errores y de log de la aplicación sencillos, vienen por
defecto y son altamente configurables. El log se genera por defecto en sistemayii/protected/runtime/application.log y puede indicarse que se guarde en una base de datos o se envié por correo por ejemplo.
Urls Amigables: Yii por defecto permite el uso de urls amigables ejemplo: http://leninmhs.wordpress.com/2011/10/18/v-jornastec-taller-yii-framework/
que nos ayuda a entender de que se trata la dirección sin haber entrado
en ella y le gusta mucho mas a google para indexar nuestros contenidos.
Seguridad, Prevención de ataques comunes:
Yii está equipado con medidas de seguridad para ayudar a prevenir a las
aplicaciones web hechas en yii de ataques como inyección SQL,
cross-site scripting (XSS), cross-site request forgery (CSRF), y de
manipulación de cookies.
Sistema de Cache:
Yii soporta el almacenamiento en caché de datos, páginas caché, caché
de fragmentos y contenido dinámico. El medio de almacenamiento de la
memoria caché se puede cambiar fácilmente sin tocar el código de la
aplicación.
Soporte a Código de Terceros y Extensiones: Yii ha sido cuidadosamente diseñado para trabajar bien con código de terceros. Por ejemplo, puede usar el código de PEAR o cualquier otro framework como Zend , Symfony o WordPress
en su aplicación Yii. De igual forma Yii proporciona una biblioteca de
extensiones que consisten en componentes, plugines y funcionalidades
aportados por los usuarios de Yii. Esto hace que la lista de características y funcionalidades de Yii sean interminables.
Soporte de Temas y Skins: Yii
implementa un mecanismo de aplicación de Temas y Skins que le permite
cambiar rápidamente el diseño de un sitio web escrito en Yii.
Internacionalización (I18N) y Localización (L10N):
Yii soporta traducción de mensajes, formatos de fecha y hora, formatos
de números y la localización de interfaz de usuario. Lo cual ayudara
mucho si necesita un sistema que haga uso de varios idiomas.
Soporte de Pruebas Funcionales y Unitarias: Yii provee excelente soporte para escribir y ejecutar pruebas unitarias y pruebas de funcionales, basadas en PHPUnit y Selenium respectivamente.
Documentación Detallada: Cada método, propiedad o funcionalidad de Yii está claramente documentada. Libros como: “Web Application Development with Yii and PHP” (2012), “Yii 1.1 Application Development Cookbook” (2011) y “Yii Rapid Application Development Hotshot” (2012), entre otros se
pueden comprar o conseguir en internet, así como también están
disponibles completos tutoriales para aprender sistemáticamente Yii.
Cada vez son mas los usuarios de Yii que se dan la tarea de escribir,
divulgar y evangelizar sobre Yii como es mi caso.
Extensiones
Yii realiza un buen
trabajo con las extensiones o lo que es lo mismo el uso de librerías de
terceros y la creación de código fuente que permita crear
funcionalidades ó extender las existentes.
A la fecha de esta entrada existen 1196
extensiones, día a día este numero incrementa y cada una de las
extensiones existentes van evolucionando, se corrigen fallos que la
comunidad detecta y se le agregan mejoras a cada una de ellas. Las
extensiones disponibles las encuentran aquí -> http://www.yiiframework.com/extensions/
Básicamente las extensiones están
categorizadas en: Autenticación, Cáche, Consola, Base de Datos, Fecha y
Tiempo, Manejo de Errores, Sistema de Archivos, Bitacoras, Mail, Redes,
Seguridad, Interfaz de Usuario, Validación, Web Service, Otras…
En caso de no existir lo que busca, la mayoría de librerías de un tercero se pueden usar en yii asi:
1 - Colocar en el directorio extensions ubicado dentro de protected
2 – Llamarla desde la aplicación así:
Yii::createComponent(‘application.extensions.tulibreria’);
1 - Colocar en el directorio extensions ubicado dentro de protected
2 – Llamarla desde la aplicación así:
Yii::createComponent(‘application.extensions.tulibreria’);
-
Yii – Elegante y Atractivo
Yii por defecto cuenta con un estilo
visual muy atractivo en comparación con otros frameworks o generadores.
Sin embargo hacer que su sistema tenga un mejor aspecto y lograr mayor
impacto visual es relativamente fácil. Solo con tener conocimiento de
HTML y CSS puede ponerse a trabajar en ello, recuerde que Yii es MVC y
si existe una programación acorde no se debería tropezar con consultas
SQL ni programación con lógica del negocio en los archivos de las vistas
que son las que desplegaran las interfaces de usuario. Recuerde también
que Yii le permite sin requisitos previos usar widgets (pestañas,
acordeón, calendario, tooltips, etc…) del proyecto jQueryUI
el cual cuenta con finas interfaces, las cuales puede refinar y ajustar
mucho mas a sus requerimientos en la sección de themes del proyecto http://jqueryui.com/themeroller/.
Si todo esto aun le parece mucho trabajo
podrá buscar en la categoría de interfaces de usuarios de las
extensiones de Yii en su pagina oficial y encontrara muchos elementos
relacionados a interfaces de usuarios.
Adicionalmente Yii provee un mecanismo
de gestión de temas muy bueno que permite cambiar el diseño de un
sistema de forma rápida y practica. Si usted quiere cambiar el tema por
defecto deberá colocar su tema en el directorio sistemayii/themes y agregar en sistemayii/protected/config/main.php esta linea ‘theme’ => ‘sutema’,
Existe un buen directorio de temas
públicos y gratuitos para Yii donde encontraran desde diseños enfocados a
paginas web corporativas hasta interfaces orientadas a cuadros de
mandos y sistemas complejos, muchos con las tendencias actuales como
diseño responsive y alta configuración de los mismos. De modo que tener
un diseño profesional orientado a su necesidad puede ser cuestión de
segundos. http://yii.themefactory.net/
-
Yii vs El Mundo
RPS significa “solicitudes por segundo”,
o lo que es lo mismo la cantidad de peticiones que el framework puede
procesar por segundos, cuanto mayor sea el número más eficiente será el
framework. La ventaja en el rendimiento de Yii es especialmente
significativa cuando se usa con el acelerador de PHP APC (Alternative
PHP Cache). Yii, cuenta con un conjunto de características que mejoran
considerablemente su eficiencia como la gestión de cáche, carga de
componentes contra demanda, etc…
Aplicaciones Desarrolladas en Yii
Herramienta web de gestión de bases de
datos MySQL, con rápidas y bien elaboradas interfaces de usuario,
excelente despliegue de ajax y muy cuidada interfaz de usuario,
excelente competencia para phpMyAdmin. Liberada como software libre. www.chive-project.com
-
“Básicamente contiene todo lo que
necesitas para elaborar cualquier encuesta posible”. LimeSurvey permite a
los usuarios crear de forma rápida, potente e intuitiva, encuestas
on-line en las que pueden participar decenas de miles de participantes
sin mucho esfuerzo, funcionando como auto-guía para los encuestados que
participan en las encuestas. www.limesurvey.org
-
Instalar Yii
Yii necesita para funcionar PHP5, un
servidor web y normalmente una base de datos. Para saber si su
instalación cumple con los requerimientos y tener información mas
detallada use el url: http://localhost/yii/requirements/index.php
En nuestro caso usaremos Yii con PostgreSQL en Apache. Todo lo que necesitamos en Debian GNU/Linux lo conseguimos asi:
aptitude install apache2 php5 php5-cli postgresql-9.1 php5-pgsql
El php5-cli es para el uso por lineas de comando de php, lo cual usaremos para generar el esqueleto de la aplicación.
1 - Desde yiiframework.com Descargar y Descomprimir en su document root. Preferiblemente renombrar el directorio a yii.
2 - En un terminal ubicarse en el directorio “framework” dentro del directorio “yii”
$cd www/yii/framework/
$cd www/yii/framework/
$yiic webapp ../../nombresistema
ó
$php yiic.php webapp ../../nombresistema
3- Visitar en el navegador la ruta al esqueleto de aplicación que acabamos de generar: http://localhost/sistemayii
A este punto tenemos una aplicación web funcional, con sistema de autenticación, formulario de contacto, menús, etc…
Si es todo lo que necesitamos para comenzar con Yii, simple verdad, como Yii
-
Configurar Yii
En: sistemayii/protected/config/main.php
Indicar la cadena de conexión a su manejador de base de datos, en este ejemplo usamos PostgreSQL.
Descomentamos y escribimos los datos de conexión
Descomentamos y escribimos los datos de conexión
‘db’ => array (
‘connectionString’ => ‘pgsql:host=localhost;dbname=nombrebd’,
‘emulatePrepare’ => true,
‘username’ => ‘postgres’,
‘password’ => ‘clave’,
‘charset’ => ‘utf8′,
),
‘connectionString’ => ‘pgsql:host=localhost;dbname=nombrebd’,
‘emulatePrepare’ => true,
‘username’ => ‘postgres’,
‘password’ => ‘clave’,
‘charset’ => ‘utf8′,
),
Descomentar el modulo gii para habilitar la generación de sus futuros módulos. Debe colocar una contraseña
‘gii’ => array(
‘class’ => ‘system.gii.GiiModule’,
‘password’ => ‘cl4v3s3cr3t4′,
// If removed, Gii defaults to localhost only. Edit carefully to taste.
‘ipFilters’ => array(’127.0.0.1′,’::1′),
),
‘class’ => ‘system.gii.GiiModule’,
‘password’ => ‘cl4v3s3cr3t4′,
// If removed, Gii defaults to localhost only. Edit carefully to taste.
‘ipFilters’ => array(’127.0.0.1′,’::1′),
),
Agregar al final del archivo:
‘language’=>‘es’,
‘sourceLanguage’=>‘en’,
‘defaultController’=>‘tu_modulo/admin’,
‘language’=>‘es’,
‘sourceLanguage’=>‘en’,
‘defaultController’=>‘tu_modulo/admin’,
Luego ir al URL-> http://localhost/sistemayii/index.php?r=gii
Si le aparece el siguiente error generando un model o crud:
There was some error when generating the code. Please check the following messages.
Generating code using template "/home/lenin/www/yii/framework/gii/generators/model/templates/default"...
generating models/Usuario.php
Unable to write the file '/home/lenin/www/lenin/protected/models/Usuario.php'.
done!
ó
Generating code using template "/home/lenin/www/yii/framework/gii/generators/crud/templates/default"... generating controllers/UsuarioController.php Unable to write the file '/home/lenin/www/lenin/protected/controllers/UsuarioController.php'. generating views/usuario/_form.php Unable to create the directory '/home/lenin/www/lenin/protected/views/usuario'. generating views/usuario/_search.php Unable to create the directory '/home/lenin/www/lenin/protected/views/usuario'. generating views/usuario/_view.php Unable to create the directory '/home/lenin/www/lenin/protected/views/usuario'. generating views/usuario/admin.php Unable to create the directory '/home/lenin/www/lenin/protected/views/usuario'. generating views/usuario/create.php Unable to create the directory '/home/lenin/www/lenin/protected/views/usuario'. generating views/usuario/index.php Unable to create the directory '/home/lenin/www/lenin/protected/views/usuario'. generating views/usuario/update.php Unable to create the directory '/home/lenin/www/lenin/protected/views/usuario'. generating views/usuario/view.php Unable to create the directory '/home/lenin/www/lenin/protected/views/usuario'. done!
Entonces aplique permisología a los directorios: protected/models protected/controllers protected/views
Hasta este punto ya usted tendrá todos los elementos para la
generación de módulos. La siguiente imagen es un referencia rápida sobre
como crear módulos en Yii. Recuerde que para acceder al generador Gii
el url es -> http://localhost/sistemayii/index.php?r=gii
-
Interfaz Yii
-
Directorios Yii
root@i5:/home/lenin/www# tree sistemayii
sistemayii
├── assets <- Cáche que genera Yii de elementos públicos como html, js, css…
├── css <- Directorio donde colocar archivos css
├── images <- Directorio para colocar imágenes, iconos, etc…
├── index.php <- Ruta al framework Yii, archivo de configuración de la app, log y debug
├── index-test.php <- Entrada alternativa al sistema, generalmente para modo debug y testing
├── protected <- Contenedor del código fuente de tu app, donde ocurre toda la accion de yii
│ ├── commands <- Se pueden personalizar comandos de yiic
│ │ └── shell <- Se pueden personalizar comandos de yiic por linea de comandos
│ ├── components
│ │ ├── Controller.php
│ │ └── UserIdentity.php <- Aquí se indican usuarios y contraseñas por defecto
│ ├── config
│ │ ├── console.php
│ │ ├── main.php <- Archivo de configuración de la app, valores generales son indicados aquí
│ │ └── test.php
│ ├── controllers <- Directorio donde están los controladores
│ │ ├── SiteController.php
│ │ └── UsuarioController.php
│ ├── data <- Tiene bds de ejemplo
│ │ ├── schema.mysql.sql
│ │ ├── schema.sqlite.sql
│ │ └── testdrive.db <- Base de datos sqlite de ejemplo
│ ├── extensions <- Aquí se colocan extensiones y librerías de terceros
│ ├── messages <- Aquí se colocaran traducciones a otros idiomas de mensajes y textos
│ ├── migrations
│ ├── models <- Directorio donde están los modelos
│ │ ├── ContactForm.php
│ │ ├── LoginForm.php
│ │ └── Usuario.php
│ ├── runtime
sistemayii
├── assets <- Cáche que genera Yii de elementos públicos como html, js, css…
├── css <- Directorio donde colocar archivos css
├── images <- Directorio para colocar imágenes, iconos, etc…
├── index.php <- Ruta al framework Yii, archivo de configuración de la app, log y debug
├── index-test.php <- Entrada alternativa al sistema, generalmente para modo debug y testing
├── protected <- Contenedor del código fuente de tu app, donde ocurre toda la accion de yii
│ ├── commands <- Se pueden personalizar comandos de yiic
│ │ └── shell <- Se pueden personalizar comandos de yiic por linea de comandos
│ ├── components
│ │ ├── Controller.php
│ │ └── UserIdentity.php <- Aquí se indican usuarios y contraseñas por defecto
│ ├── config
│ │ ├── console.php
│ │ ├── main.php <- Archivo de configuración de la app, valores generales son indicados aquí
│ │ └── test.php
│ ├── controllers <- Directorio donde están los controladores
│ │ ├── SiteController.php
│ │ └── UsuarioController.php
│ ├── data <- Tiene bds de ejemplo
│ │ ├── schema.mysql.sql
│ │ ├── schema.sqlite.sql
│ │ └── testdrive.db <- Base de datos sqlite de ejemplo
│ ├── extensions <- Aquí se colocan extensiones y librerías de terceros
│ ├── messages <- Aquí se colocaran traducciones a otros idiomas de mensajes y textos
│ ├── migrations
│ ├── models <- Directorio donde están los modelos
│ │ ├── ContactForm.php
│ │ ├── LoginForm.php
│ │ └── Usuario.php
│ ├── runtime
│ │ ├── application.log <- Log de la aplicación
│ │ └── gii-1.1.13
│ │ ├── CrudCode.php
│ │ └── ModelCode.php
│ ├── tests <- Directorio donde se ubican los test funcionales y unitarios
│ │ ├── bootstrap.php
│ │ ├── fixtures
│ │ ├── functional
│ │ │ └── SiteTest.php
│ │ ├── phpunit.xml
│ │ ├── report
│ │ ├── unit
│ │ └── WebTestCase.php
│ ├── views <- Directorio donde están las vistas
│ │ ├── layouts
│ │ │ ├── column1.php
│ │ │ ├── column2.php
│ │ │ └── main.php <- Layout o maquetación principal de la app
│ │ ├── site
│ │ │ ├── contact.php <- Vista del formulario de contacto incluye captcha
│ │ │ ├── error.php <- Vista de la acción error
│ │ │ ├── index.php <- Vista de la pagina de inicio que muestra bienvenida y enlaces
│ │ │ ├── login.php <- Vista del formulario de login
│ │ │ └── pages <- Directorio para vistas estáticas
│ │ │ └── about.php <- Vista de pagina estática about
│ │ └── usuario <- Vistas de módulo autogenerado
│ │ ├── admin.php
│ │ ├── create.php <- Vista para crear registros embebe a _form.php
│ │ ├── _form.php <- Vista con formulario usado en create y update
│ │ ├── index.php
│ │ ├── _search.php <- Formulario de búsqueda de valores
│ │ ├── update.php <- Vista para modificar registros embebe a _form.php
│ │ ├── _view.php
│ │ └── view.php
│ ├── yiic <- Línea de comandos para entorno unix/linux
│ ├── yiic.bat <- Línea de comandos para windows
│ └── yiic.php <- Línea de comando usando php
└── themes <- Temas de la aplicación
└── classic
└── views
├── layouts
├── site
└── system
│ │ └── gii-1.1.13
│ │ ├── CrudCode.php
│ │ └── ModelCode.php
│ ├── tests <- Directorio donde se ubican los test funcionales y unitarios
│ │ ├── bootstrap.php
│ │ ├── fixtures
│ │ ├── functional
│ │ │ └── SiteTest.php
│ │ ├── phpunit.xml
│ │ ├── report
│ │ ├── unit
│ │ └── WebTestCase.php
│ ├── views <- Directorio donde están las vistas
│ │ ├── layouts
│ │ │ ├── column1.php
│ │ │ ├── column2.php
│ │ │ └── main.php <- Layout o maquetación principal de la app
│ │ ├── site
│ │ │ ├── contact.php <- Vista del formulario de contacto incluye captcha
│ │ │ ├── error.php <- Vista de la acción error
│ │ │ ├── index.php <- Vista de la pagina de inicio que muestra bienvenida y enlaces
│ │ │ ├── login.php <- Vista del formulario de login
│ │ │ └── pages <- Directorio para vistas estáticas
│ │ │ └── about.php <- Vista de pagina estática about
│ │ └── usuario <- Vistas de módulo autogenerado
│ │ ├── admin.php
│ │ ├── create.php <- Vista para crear registros embebe a _form.php
│ │ ├── _form.php <- Vista con formulario usado en create y update
│ │ ├── index.php
│ │ ├── _search.php <- Formulario de búsqueda de valores
│ │ ├── update.php <- Vista para modificar registros embebe a _form.php
│ │ ├── _view.php
│ │ └── view.php
│ ├── yiic <- Línea de comandos para entorno unix/linux
│ ├── yiic.bat <- Línea de comandos para windows
│ └── yiic.php <- Línea de comando usando php
└── themes <- Temas de la aplicación
└── classic
└── views
├── layouts
├── site
└── system
32 directories, 47 files