Yii Framework en Español

El script de inicio es el script bootstrap PHP que maneja las peticiones del usuario inicialmente. Éste es el unico script PHP que los usuarios finales puede pedir ejecutar.

En la mayoría de los casos, el script de inicio de una aplicación Yii contiene código simple como este:¨

// remove the following line when in production mode
defined('YII_DEBUG') or define('YII_DEBUG',true);
// include Yii bootstrap file
require_once('path/to/yii/framework/yii.php');
// create application instance and run
$configFile='path/to/config/file.php';
Yii::createWebApplication($configFile)->run();

El script primero incluye el archivo bootstrap del framework llamado yii.php . Luego crea una instancia de la aplicación web con la configuración especificada y ejecuta la aplicación.

Modo Debug

Una aplicación Yii puede correr en modo debug o en modo producción, esto es acorde al valor de la constante YII_DEBUG. Por defecto esta constante está definida en false, lo que significa modo producción.
Para correrlo en modo debug, defina la constante en true antes de incluir el archivo yii.php.

Correr la aplicación en modo debug es menos eficiente porque maneja una cantidad de registros internos. Por otro lado, el modo debug es de mucho mas ayuda durante el desarrollo porque provee mucha mas información acerca de los errores, cuando estos ocurren.

Traducción : Martín Sagastume Rué (msr)
Fuente: http://www.yiiframework.com/doc/guide/basics.entry

Yii implementa el patrón de diseño MVC(model-view-controller) el cuál es ideal para la programación Web.
MVC apunta a separar la lógica de negocio de la interfaz de usuario, así los programadores pueden facilmente cambiar cada parte sin afectar unas a otras. En MVC, el modelo representa la información(los datos) y las reglas de negocio; las vistas contienen los elementos de interfaz de usuario, como texto, colores, imagenes; y los controladores manejan la comunicación entre el modelo y la vista.

Además de MVC, Yii también introduce un controlador-frontal , llamado aplicación, el cual representa el contexto de ejecución de las peticiones en proceso. La aplicación resuelve las peticiones de los usuarios y las despacha al controlador apropiado para futuros manejos.

El siguiente diagrama muestra la estructura estática de una aplicación Yii:

structure

El típico flujo de trabajo

El siguiente diagrama muestra el típico flujo de trabajo de una aplicación Yii cuando está manejando la petición de un usuario:

flow

  1. Un usuario hace una petición en la siguiente URL http://www.example.com/index.php?r=post/show&id=1 y el servidor web maneja la petición ejecutando el bootstrap script index.php.
  2. El bootstrap script crea una instancia de la aplicación y la ejecuta.
  3. La aplicacion obtiene la información detallada de la petición de los usuarios desde un componente de la aplicación llamado request(petición).
  4. La aplicación determina la petición del controlador y actúa con la ayuda de un componente de la aplicación llamado urlManager(manejador de url’s).
    Para este ejmplo, el controlador es Post que hace referencia a la clase PostController; y la acción es show(mostrar) el cuál su significado es determinado por el controlador
  5. La aplicación crea una instancia de la petición del controlador para mas adelante manejar la petición del usuario. El controlador determina que la acción show(mostrar) se refiere a un método llamado actionShow en la clase del controlador.
    Entonces crea y ejecuta filtros (por ej: controles de acceso) asociados a esta acción. La acción es ejecutada si los filtros lo permiten.
  6. La acción lee un modelo Post el cuál si ID es 1 en la base de datos.
  7. La acción asocia una vista llamada show(mostrar) con el modelo Post.
  8. La vista lee y muestra los atributos del modelo Post.
  9. La vista ejecuta algunos artilugios.
  10. Los resultados de la vista son embebidos en un diseño(layout)
  11. La acción completa la prestación de la vista y muestra el resultado al usuario.

Traducción : Martín Sagastume Rué (msr)
Fuente: http://www.yiiframework.com/doc/guide/basics.mvc

Instalación:

$sudo apt-get update
$sudo apt-get install apache2 php5 libapache2-mod-auth-mysql php5-mysql php5-cli mysql-server-5.0 phpmyadmin

Configuración:
Para poder darle acceso de escritura al directorio de apache, debemos correr lo siguiente:

$sudo chmod -R 775 /var/www

Para acceder a phpmyadmin desde el servidor web:

$sudo ln -s /usr/share/phpmyadmin /var/www/

Para correr Apache y MySQL

$sudo /etc/init.d/apache2 start

$sudo /etc/init.d/mysql start

Para reiniciar Apache y MySQL

$sudo /etc/init.d/apache2 restart

$sudo /etc/init.d/mysql restart

Para detener Apache y MySQL

$sudo /etc/init.d/apache2 stop

$sudo /etc/init.d/mysql stop

Los archivos se colocan en /var/www/ y se acceden mediante

http://localhost/ruta/hacia/archivo.php

PhpMyAdmin se corre desde http://localhost/phpmyadmin/

Saludos ;-)

Primera aplicación Yii

Para obtener una experiencia inicial con Yii, se describe en esta sección, cómo crear nuestra primera aplicación web usando Yii. Usaremos la poderosa herramienta yiic que puede ser usada para automatizar la creación de código con varios propósitos. Asumimos que YiiRaiz es el directorio donde Yii está instalado.

Corra yiic en la linea de comandos de la siguiente manera:

% YiiRaiz/framework/yiic webapp RaizWeb/testdrive

Note: Al correr yiic en Mac OS o en Linux/Unix , usted posiblemente deba cambiarle los permisos al archivo yiic para que pueda ser ejecutable.

También puede correr yiic usando php de la siguiente manera:

php YiiRaiz/framework/yiic.php webapp RaizWeb/testdrive

Esto creará el esqueleto de una aplicación Yii bajo el directorio RaizWeb/testdrive, donde RaizWeb es el documento raiz de su servidor web (en apache es ruta/hacia/htdocs). La aplicación es un buen punto de inicio para agregarle mas funcionalidades ya que tiene todos los directorios y archivos necesarios.

Sin escribir una sola linea de código, podemos probar nuestra primera aplicación Yii accediendo a la siguiente URL desde su navegador web:

http://nombrehost/testdrive/index.php

Como podemos ver, la aplicación tiene tres páginas: la pagina de inicio, la de contacto y la de login. La página de inicio muestra alguna información sobre la aplicación así como también el estado del usuario logueado, la página de contacto muestra un formulario que el usuario puede llenar para enviar sus inquietudes y la página de login le permite a un usuario autentificarse antes de acceder a los contenidos privados que requieren ciertos privilegios. Vea las siguientes capturas para mas detalles:

El siguiente diagrama muestra la estructura de directorios de nuestra aplicación. Porfavor lea las convenciones para mas detalles explicativos acerca de esta estructura :

testdrive/
   index.php                 punto de entrada de la aplicación Web
   assets/                   contiene archivos de recursos publicados
   css/                      contiene archivos CSS
   images/                   contiene archivos de imagen
   themes/                   contiene temas para la aplicación
   protected/                contiene archivos protegidos para usuarios finales
      yiic                   yiic scrpit de linea de comando
      yiic.bat               yiic script de linea de comando para MS Windows
      commands/              contiene comandos personalizados 'yiic'
         shell/              contiene comandos personalizados 'yiic shell'
      components/            contiene componentes reusables por el usuario
         MainMenu.php        el artilugio clase 'MainMenu'
         Identity.php        la clase 'Identity' usada para autentificación
         views/              contiene los archivos de vistas para los artilugios
            mainMenu.php     el archivo de vistas para el artilugio 'MainMenu'
      config/                contiene los archivos de configuración
         console.php         archivo de configuración para la aplicación de consola
         main.php            archivo de configuracion de la aplicación Web
      controllers/           contiene los archivos de las clases Controller
         SiteController.php  la clase Controller por defecto
      extensions/            contiene extensiones de terceros
      messages/              contiene mensajes traducidos
      models/                contiene archivos de las clases Model
         LoginForm.php       el formulario model para la acción de 'login'
         ContactForm.php     el formulario model para la acción de 'contact'
      runtime/               contiene archivos generados temporalmente
      views/                 contiene vistas del controller y archivos de diseño
         layouts/            contiene archivos de vistas de diseño
            main.php         el diseño por defecto para todas las páginas
         site/               contiene archivos de vistas para el controlador 'site'
            contact.php      las vistas para la acción de 'contact'
            index.php        las vistas para la acción de 'index'
            login.php        las vistas para la acción de 'login'
         system/             contiene archivos de las vistas del sistema

Conectando con la Base de Datos

Muchas aplicaciones web utilizan bases de datos. Nuestra aplicación testdrive no es una excepción. Para usar
una base de datos, primero necesitamos decirle a la aplicación, cómo conectarse a ella. Esto se hace cambiando el archivo de configuración de la aplicación:

WebRaiz/testdrive/protected/config/main.php

de la siguiente manera:

return array(
    ......
    'components'=>array(
        ......
        'db'=>array(
            'connectionString'=>'sqlite:protected/data/source.db',
        ),
    ),
    ......
);

En el código de arriba, agregamos un componente de entrada db, que le indica a la aplicación que se conecte con una base de datos SQLite: WebRaiz/testdrive/protected/data/source.db , cuando lo necesite.

Nota: Para usar las características de base de datos de Yii, necesitaremos habilitar la extensión PHP PDO y el driver específico para esa extensión. Para nuestra aplicación testdrive, necesitamos tener las extensiones php_pdo y php_pdo_sqlite habilitadas.

Opcional: si usted desea trabajar con MySQL puede cambiár la linea de connectionString del código de arriba por:

'connectionString'=>'mysql:host=localhost;dbname=Yii','username'=>'usuario', 'password'=>'clave', 'charset'=>'utf8',

 

en el caso de este ejemplo trabajaremos con SQLite 3, pero siempre es bueno tener varias alternativas y sobre todo la de MySQL que es la mas popular.

Para finalizar, necesitaremos preparar la base de datos SQLite asi la configuración establecida mas arriba puede ser efectiva. Usando alguna herramienta para administrar SQLite, podemos crear la base de datos con el siguiente schema:

CREATE TABLE User (
    id INT( 255 ) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR( 128 ) NOT NULL,
    password VARCHAR(128 ) NOT NULL,
    email VARCHAR( 128 ) NOT NULL
);

Para mantener las cosas simples, solamente creamos la tabla User en nuestra base de datos. El archivo de base de datos de SQLite está guardado en WebRaiz/testdrive/protected/data/source.db.

Note que el archivo y el directorio que lo contiene deben tener permisos de escritura en el servidor web, así lo requiere SQLite.

Implementar ABM con Yii

Ahora viene la parte mas divertida. Queremos implementar un ABM (alta, baja y modificación) para la tabla User que hemos creado. Esto es comunmente requerido en aplicaciones prácticas.

Note: ABM es lo que en inglés equivale a CRUD (create, read, update and delete)

Nuevamente, usamos la herramienta yiic para que nos ayude a generar el código que necesitamos.
Este proceso se le conoce también como scaffolding.

% cd WebRoot/testdrive
% YiiRoot/framework/yiic shell
Yii Interactive Tool v1.0
Please type 'help' for help. Type 'exit' to quit.
>> model User
   generate User.php

The 'User' class has been successfully created in the following file:
    D:\wwwroot\testdrive\protected\models\User.php

If you have a 'db' database connection, you can test it now with:
    $model=User::model()->find();
    print_r($model);

>> crud User
   generate UserController.php
   generate create.php
      mkdir D:/wwwroot/testdrive/protected/views/user
   generate update.php
   generate list.php
   generate show.php

El ABM para ‘user’ ha sido generado satisfactoriamente.

Ahi arriba, usamos el comando de consola yiic para interactuar con nuestra aplicacion creada recientemente.
En el prompt, podemos insertar expresiones válidas PHP para evaluarlas y mostrarlas por pantalla.
También podemos realizar tareas como model y crud(abm) como se muestra arriba. Y el comando crud genera la clase Controller y las vistas que implementa las operaciones ABM para el usuario normal.

Disfrutemos de nuestro *trabajo* ingresando la siguiente URL en el navegador web:

http://nombrehost/ruta/hacia/index.php?r=user

Esto mostrará una lista de entradas del usuario en la tabla User. Ya que nuestra tabla está vacía, nada se mostrará por ahora.
Haga click en el link New User de la página. Y nos traerá a la página de login si es que no nos hemos logueado anteriormente. Luego de loguearse, nos mostrará un formulario de ingreso para que podamos crear entradas de nuevos usuarios. Complete el formulario y haga click en el botón Create.

Si hay un error en la entrada de datos, un lindo cartel de error se mostrará diciendo que es lo que esta previniendo que los datos sean guardados.

Volviendo a la lista de usuarios, debemos ver los usuarios recientemente agregados que ahora se muestran en la lista. Repite los pasos una y otra ves hasta agregar varios usuarios. Note que la página con la lista de usuarios automáticamente creará una paginación si los usuarios son demasiados como para ser mostrados en una sola página.

Si nos logueamos como administrador usando la cuenta admin / admin , podemos ver la página del usuario admin en la siguiente URL

http://nombrehost/testdrive/index.php?r=user/admin

Esto mostrará una linda tabla con la entrada de los usuarios. Podemos hacer click en las celdas de la cabecera para ordenar las correspondientes columnas. Y como la página de los usuarios, la pagina del administrador también admite paginación si los usuarios son demasiados como para mostrarse en una sola página.

Todas estas características hermosas las podemos obtener sin escribir una sola linea de codigo !!!

Traducción : Martín Sagastume Rué (msr)
Fuente: http://www.yiiframework.com/doc/guide/quickstart.first-app

Instalación

La instalación de Yii es sencilla e involucra los dos siguientes pasos:

1) Descargar el framework desde www.yiiframework.com
2) Extraer el archivo en un directorio accesible por el servidor web.

Requerimientos

Luego de instalar Yii puede verificar si su servidor satisface los requerimientos de Yii. Puede hacer esto accediendo a un script que revisa los requerimientos y su sistema, acceda a la siguiente URL desde un navegador web:

http://nombrehost/ruta/hacia/yii/requirements/index.php

comunmente si esta trabajando localmente, el nombrehost es localhost.

Los requerimientos minimos de Yii son PHP 5.1.0 o superior. Yii ha sido probado en Apache HTTP server en Windows y en Linux. Pero también deberá correr en otros servidores webs o plataformas que soporten PHP 5.

Consejo: En producción se recomienda sacar el framework del servidor web para evitar hacks.

Traducción : Martín Sagastume Rué (msr)
Fuente: http://www.yiiframework.com/doc/guide/quickstart.installation

¿Que es Yii ?

Yii es un framework para PHP de alta performance basado en componentes web para desarrollar aplicaciones web de gran escala. Permite una máxima reusabilidad en la programación web y puede acelerar significativamente el proceso de desarrollo.
El nombre Yii (pronunciado /i:/ ) proviene de facilidad, eficiencia y extensión.

Requerimientos

Para correr una aplicación Web basada en Yii, usted necesita un servidor Web que soporte PHP 5.1.0 o superior.

Para los desarrolladores que quieran usar Yii, entender el paradigma de la orientación a objetos (POO) es de gran ayuda, ya que Yii es un framework puramente basado en POO.

¿Para que es mejor Yii?

Yii es un framework genérico para programar Webs que puede ser utilizado para desarrollar virtualmente cualquier tipo de aplicaciones web. Ya que es liviano y está equipado con las soluciones mas sofisticadas, está especialmente diseñado para trabajar con aplicaciones web de trafico alto, como portales, foros, CMS, comercios electrónicos, etc.

¿Cómo se compara Yii con otros Frameworks?

Como la mayoría de los framework para PHP , Yii es un framework que sigue el patrón de diseño MVC.
Yii sobresale sobre los otros frameworks PHP por su eficiencia y su rica librería de funcionalidades así como también su clara documentación.

Yii esta diseñado con cuidado desde el inicio para ser encajado en desarrollos de aplicaciones web serias.

Yii es el resultado de la experiencia que tienen sus autores en el desarrollo de aplicaciones web ricas en funcionalidad y la investigación y reflejo de los frameworks y aplicaciones mas populares para programar Webs.

Traducción : Martín Sagastume Rué (msr)
Fuente: http://www.yiiframework.com/doc/guide/quickstart.what-is-yii

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.