Yii Framework Tutorial Español
Yii Framework Tutorial Español
UNIVERSIDAD DEL CAUCA FACULTAD DE INGENIERA ELECTRNICA Y TELECOMUNICACIONES INGENIERA DE SISTEMAS POPAYN (CAUCA) 30 de mayo de 2012
Tabla de contenido
Introduccin ....................................................................................................................... 3 Instalacin ......................................................................................................................... 4 Informacin general ........................................................................................................... 7 Mi primer ejemplo .............................................................................................................. 8 Manipulacin de datos ..................................................................................................... 11 Cread ........................................................................................................................... 14 Read ............................................................................................................................ 15 Update ......................................................................................................................... 16 Delete........................................................................................................................... 17 Generar los links para usar el CRUD ............................................................................... 18 Conclusiones o lecciones aprendidas .............................................................................. 19 Referencias ..................................................................................................................... 19
Introduccin.
Yii es un framework PHP basado en componentes para desarrollar aplicaciones Web de gran escala. El mismo permite la mxima reutilizacin en la programacin web y puede acelerar el proceso de desarrollo. Para desarrolladores que deseen utilizar Yii, el entendimiento de Programacin Orientada a Objetos (POO) ser de grn ayuda ya que Yii es un framework totalmente basado en POO. Yii es un framework generico de programacin Web que puede ser utilzado para todo tipo de aplicaciones Web. Gracias a que es liviano de correr, es adecuado para desarrollar aplicaciones de gran trfico como portales, foros, sistemas de administracin de contenidos, Sistemas de comercio electrnico, etc. Como la mayora de los frameworks PHP, Yii es un framework MVC (modelo-vistaontrolador), Yii sobresale frente a frameworks PHP en su eficiencia, su gran cantidad de caractersticas, Yii ha sido diseado cuidadosamente desde el principio para el desarrollo de aplicaciones Web. No es ni un subproducto de un proyecto ni un conglomerado de trabajo de terceros, es el resultado de la basta experiencia de los autores en desarrollo de aplicaciones Web y de la investigacin y la reflexin de los ms populares los frameworks de programacin Web y aplicaciones.
Instalacin
Para hacer instalacin de nuestro framework Yii nos remitimos a la pgina oficial de yii http://www.yiiframework.com/ en donde podemos descargar el framework, una vez descargado lo descomprimimos y lo copiamos en la raz del directorio de publicaciones de nuestro servidor, en este caso utilizare wamp.
El directorio raz de wamp nos quedara algo as, en donde yii es el archivo descargado, descomprimido y copiado con el nombre yii por facilidad. Para poder crear nuestros proyectos en este framework es necesario configurar las variables de entorno PATH tanto para php como para el frammework yii, entonces nos vamos editar el PATH. Vamos a inicio, escribimos en le buscador variables de entorno, escogemos Editar las variables de entorno del sistema, esto nos muestra una ventana en la cual escogemos Variables de entorno
En donde dice Valor de la variable path se coloca las direcciones en donde se encuentran nuestros ejecutables de la aplicacin php y la del framework yii separados por (;), entonces continuamos
C:\wamp\bin\php\php5.3.10 C:\wamp\www\yii\framework Aceptamos todas las ventanas y listo tenemos configuradas las variables de entorno para php y yii
Por ultimo creamos nuestra aplicacin por medio de la terminal de Windows de la siguiente manera. Abrimos una terminal DOS, nos ubicamos en la raz del directorio de publicaciones y escribimos el siguiente comando como se ve en la siguiente fotografa de la terminal
yiic es el framework utilizado. Webapp es el tipo de aplicacin que estamos creando website es el nombre de nuestra aplicacin.
Aceptamos y listo esta creado proyecto con toda la estructura por defecto del framework yii que utilizaremos en este tutorial para hacer un crud a una tabla de una base de datos.
Informacin general
Antes de empezar a implementar cualquier cosa, recordemos que la idea es practicar el MVC, por lo tanto todo lo que hagamos en este tutorial ser siguiendo este patrn.
Esta es la estructura de archivos que nos genera el framework para que trabajemos nuestras aplicaciones, describir las mas importantes con el fin de simplificar el aprendizaje. css: guarda las hojas de estilo utilizadas en la aplicacin. Images: almacena todas las imgenes de toda la aplicacin protected : es la carpeta mas importante porque ah es donde se hace efectivo el MVC controllers: en esta carpeta van todos los controladores que son los encargados de la intermediacin entre las vistas y la lgica del negocio o modelos. models: se implementa la lgica del negocio de la aplicacin view: se implementan absolutamente todas las vistas de la aplicacin, por ejemplo la pagina inicial del framewor creada esta aqu en esta carpeta y se llama index, este index es creada por defecto y remasteriza su vista al abrir la pagina de la aplicacin localhost/website
yii trae por defecto un index que es en el cual vamos a trabajar para este tutorial, claro esta que lo podemos cambiar as como tambin la hoja de estilo si no nos gusta. Este index como o dije anteriormente esta en la carpeta view donde estn todas nuestras vistas.
Mi primer ejemplo
En el proceso de aprendizaje de cualquier famework es recomendable partir de lo mas bsico y este no va a ser la excepcin, es por eso que a continuacin mostrare como hacer el famoso hola mundo respetando el patrn de diseo MVC. Entonces para ello necesitamos crear una vista y su controlador. Controlador: los controladores son archivos php en los cuales se declara la clase controlador que lleva el siguiente formato: class NombreController extends Controller : el Nombre del controlador empezando con mayscula, seguido de la palabra Controller con C en mayscula y de extiende de la clase Controller. Dentro de esta clase se implementan funciones que son las acciones que va atender el controlador, estas funciones tienen el siguiente formato: public function actionIndex(): la palabra public seguida de la palabra function y despus la palabra action seguido del Nombre de la accin empezando en mayscula, dentro de estas funciones va la lgica de la aacion.
El archivo php se guarda con el mismo nombre y el mismo formato que la clase de controlador NombreController
Entonces para nuestro ejemplo construimos el controlador como se muestra en la siguiente imagen.
La lnea 5 declara la variable saludo y le asigna una cadena hola mundo La lnea 6 es una funcin heredada de la clase controller la cual me permite reiterisar con la posibilidad de enviar parmetros o no!. Para este caso mandaremos la variables $saludo como parmetro, entonces el primer parmetro de render es la vista que vamos reiterisar y el segundo es una array de parmetros con el siguiente formato array(saludo=>$saludo) en donde saludo es el nombre de la variable que va a tomar en la vista y $saludo es la variable que estamos enviando a la vista. Vista : se implementa el cdigo necesario para mostrar lo deseado, en este caso mostraremos una variable que recibimos de parte del controlador . Para guardar este vista vamos a la carpeta views y creamos una nueva carpeta que tendr el nombre del controlador saludo en minsculas y en esta guardamos el archivo index.php que contiene la vista como tal. En la siguiente imagen muestro lo dicho anteriormente.
Para probar nuestro saludo modificamos la url de la siguiente manera http://localhost/website/index.php?r=saludo/index Donde el rojo saludo es el controlador que vamos a usar y el verde index es la accin o vista a reiterizar.
Con esto hemos empezado a manejar nuestro framework yii con MVC aunque todava nos falta manejar los modelos, que lo aremos a continuacin.
Manipulacin de datos
A partir de este momento con el fin de dejar plasmado el trabajo que se realice de aqu en adelante trabajare con un proyecto que previamente e elaborado que es el de mi pagina web tambin elaborado en con Yii framework Entonces empezamos configurando Yii framework para la base. Vamos a protected/config/main.php en donde des comentamos las lneas de la 55 a 62 y comentamos de la 51 a 53.
Configuramos: dbname= testlpi username => root password => Entonces creamos la base de datos en el servidor local wamp, para este tutorial la llamaremos testlpi y tendr una tabla llamada user que tendr los siguientes campos id, first_name, last_name, email, login, password. Adicionamos un par de tuplas para ir probando el acceso a los datos. Modelo: tanto la clase como el archivo normalmente tienen el mismo nombre de la tabla de la base de datos esto empezando con mayscula, esto es recomendable puesto que el framework esta diseado para relacionar el modelo con la base de datos. Los modelos son clases que heredan de una clase llamada CActiveRecord dentro de esta clase se implementan funciones como cargar el modelo, reglas entre otros. Para una mejor ilustracin mirar la siguiente imagen que muestra el controlador para este caso de estudio.
Como podemos observar dentro del modelo User tenemos una funcin llamada model, la cual nos permite cargar el modelo.
Controlador: la sintaxis de la creacin de los controladores ya las mencione anteriormente entonces el controlador de nuestra tabla quedara de la siguiente manera
De paso creamos una funcin llamada actionIndex que su propsito general es reiterizarme una vista llamada index que me va a mostrar todos los datos de la tabla. En la lnea 7 asignamos a la variable model el modelo de la tabla user que nos devuelve el mtodo estarico model() implementado en el modelo User. Ya teniendo el modelo ya puedo hace consultas sobre esta tabla. E la lnea 8 asignamos a la variable local user todos los datos de la tabal con la funcin findAll() En la lnea 9 reiterizo la vista index y le envi todos los datos de la tabla para ser mostrados des de la vista. Ahora creamos el index a donde se redirecciona. Creamos una carpeta llamada de la misma forma que el controlador user en minsculas don de van a estar todas las vistas que utiliza el UserController.
En la vista index tenemos todos los datos de la tabla los cuales los mostramos en una tabla por medio de un foreach. Para probar nuestro trabajo hasta ahora modificamos la url de la siguiente manera http://localhost/website/index.php?r=user/index Donde el rojo user es el controlador que vamos a usar y el verde index es la accin o vista a reiterisar.
Cread
Agregamos el siguiente cdigo a UserController
Esta accin me permite adicionar un nuevo usuario al sistema Lnea 32 se crea un moelo User y se guarda en la variable $model Lnea 33 se verifica si el romulario trae valores por post Lnea 35 asigna los valores del formulario a ala variable $model Lnea 36 guarda los datos sean por primera vez Lnea 37 redirexiona a view para terminar
Lnea 39 reiterisa la vista add para ingresar los campos Creamos la vista add
Estos formularios se crean de manera especial, parecida a los helpers Lnea 2 abrimos el formulario Lnea 4 escribimos un indicador Primer Nombre Lnea 5 captura el primer nombre. Lnea 24 hacemos el botn que nos enva el formulario obtenido anteriormente al UserController
Read
Agregamos el siguiente cdigo a UserController
Esta accin nos permite visualizar con los detalles de un ususario Lnea 12 la funcin recibe el id el cual nos sirve para obtener el usuario desde la base de datos Lnea 14 obtenemos un solo objeto del modelo Lnea 15 reiterizamos la vista view enciandole el objeto anteriormente consultado Creamos la vista view
Update
Agregamos el siguiente cdigo a UserController
Esta accin me permite editar un usuario del sistema Linea 18 esta accin recibe el id del usuario que se va a editar Lnea 20 obtiene un registro por id y se guarda en la variable $model Lnea 21 se verifica si el romulario trae valores por post Lnea 23 asigna los valores del formulario a ala variable $model Lnea 24 guarda los datos que sean editados Lnea 25 redirexiona a view para terminar y le enva como parmetro el id Linear 27 si no llegan datos por post reiterisa los campos a cambia por medio de la vista edit
Estos formularios se crean de manera especial, parecida a los helpers Lnea 2 abrimos el formulario Lnea 4 escribimos un indicador Primer Nombre Lnea 5 captura el primer nombre. Lnea 24 hacemos el botn que nos enva el formulario obtenido anteriormente al UserController
Delete
Agregamos el siguiente cdigo a UserController
Esta accin permite eliminar un registro por medio del id Lnea 44 obtiene un registro por medio del id de la tabla user Lnea 45 elimina el registro Lnea 46 reiterisa la vista index
Los links en yii se hacen de esta manera <?php echo CHtml::link('Adicionar Usuario',array('add'));?> En donde Adicionar Usuario es en que parte del texto se va a coloca el hipertexto, y el array en su primera posicin es la accin y de ah hacia adelante son los parmetros que sele envan al controlado
Referencias
[1]. http://www.yiiframework.com/