Creando primera aplicación Yii

Para ingresar al mundo de Yii, en esta scción le indicamos como crear nuestra primera aplicación Yii. Usaremos la poderosa herramienta yiic que puede ser utilizadapara automatizar la creación del códgo de ciertas tareas. 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:



Nota: Cuando ejecuta yiic en Mac OS, Linux o Unix, usted deberá modificar los permisos del archivo yiic para poder ejecutarlo. Alternativamente puede correr la herramienta de la siguiente manera,


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:



Como vemos, la aplicación contiene tres páginas: homepage (la página inicial), contact (página de contacto) y login (página de login de usuario). La página inicial muestra información de la aplicación y del estado del usuario logueado, la página de contacto contiene un formulario para rellenar y enviar sus consultas y la página de login de usuario permite a los mismos autenticarse para acceder a contenidos que necesitan privilegios de acceso. Mire las siguientes pantallas para más detalles.

Home page

Home page

Contact page

Contact page

Contact page with input errors

Contact page with input errors

Contact page with success

Contact page with success

Login page

Login page

El siguiente diagrama muestra la estructura de directorios de nuestra aplicación. Por favor mire Convenciones para una explicación detallada acerca de esta estructura.



Conectandose a Base de Datos

La mayoría de las aplicaciónes Web utilizan bases de datos. Nuestra aplicación test-drive no es una excepción. 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.php como se muestra a continuación.



En el ejemplo anterior agregamos la entrada db al arreglo de components (componentes) el cual indica a la aplicación que se conecte a la base de datos WebRoot/testdrive/protected/data/source.db cuando sea necesario.

Nota: Para utilizar la característica de base de datos de Yii necesitamos habilitar la extensión PHP PDO y el driver especifico de la extensión PDO. Para la aplicación test-drive se necesitará habilitar las extensiones php_pdo y php_pdo_sqlite.

En este momento tenemos que preparar una base de datos SQLite para que la configuración anterior sea correcta. Usando alguna herramienta de administración SQLite podemos crear la base de datos con la siguiente definición de tablas:



Para simplificar el ejemplo solo creamos la tabla User en nuestra base de datos. El archivo de base de datos SQLite debe ser salvado como WebRoot/testdrive/protected/data/source.db. Nota: tanto el archivo como el directorio deben tener permisos de escritura para el proceso de servidor Web como lo requiere SQLite.

Implementando operaciones CRUD

Ahora comienza la parte divertida. Queremos implementar las operaciones CRUD para la tabla User que acabamos de crear. Esto es una práctica común en aplicaciónes prácticas.

En vez de estar lidiando con escribir el codigo actual podemos utilizar la poderosa herramienta yiic nuevamente para automaticar la generación de codigo por nosotros. Este proceso es tambien conocido como scaffolding. Abre una ventana de linea de comandos y executa los comando listados a continuación:



En el código anterior utilizamos el comando yiic shell para interactuar con la aplicación esqueleto. Hemos ejecutado dos comandos: model User y crud User. El primero genera la clase Modelo para la tabla User mientras que el segundo lee el modelo User y genera el código necesario para las operaciones CRUD.

Nota: Usted se puede encontrar con errores del estilo "...could not find driver", a pesar de que el script de verificación de requerimientos le haya indicado que tiene habilitado PDO y el driver PD correspondiente. Si esto ocurre puede intentar correr la herramienta yiic de la siguiente manera:


  
  

donde path/to/php.ini representa el archivo PHP ini correcto.

Vamos a disfrutar de nuestro trabajo navegando a la siguiente URL:



Esto nos mostrará una listado de usuarios que se encuentran como entradas de la tabla User. Como nuestra tabla se encuentra vacía en este momento no verá ningún dato.

Haga click en el enlace New User de la página. Si no estamos logueados con anterioridad se nos redireccionará a la página de login de usuario. Luego de loguearse usted verá un formulario de entrada que nos permitirá agregar un nuevo usuario a nuestra tabla. Complete el formulario y haga click en el botón Create. Si tiene algún tipo de error de ingreso, un bonito error se le mostrará que previene que grabemos nuestro usuario hasta que no sea correcto. Volviendo a la lista de usuarios podremos ver el nuevo usuario agregado en la lista.

Repita el paso anterior para agregar más usuarios. Fijese que la lista de usuarios contiene paginación automática de los datos de usuario si agrega muchos para ser mostrados en una sola página.

Si nos logueamos como administrador utilizando admin/admin podremos ver la página de administración en la siguiente URL:



Esto nos mostrará una tabla de entradas de usuarios. Podemos clickear en las celdas de los titulos para ordenar los datos de acuerdo a esa columna. Este cuadro también contiene paginación en caso de que la cantidad de entradas de usuarios sea mayor a las que se muestran en una página.

Todas estas bellas características han sido creadas sin que tengamos que escribir ni una sola linea de código!

User admin page

User admin page

Create new user page

Create new user page
$Id: quickstart.first-app.txt 723 2009-02-21 18:14:05Z sebathi $