Yii Framework Tutorial español

19
TUTORIAL BASICO PARA Yii FRAMEWORK LUIS ALBERTO ORDOÑEZ INGENIERIA DE SOTFWARE III UNIVERSIDAD DEL CAUCA FACULTAD DE INGENIERÍA ELECTRÓNICA Y TELECOMUNICACIONES INGENIERÍA DE SISTEMAS POPAYÁN (CAUCA) 30 de mayo de 2012

description

Yii Framework Tutorial instalacion CRUD primer aplicacion yii

Transcript of Yii Framework Tutorial español

Page 1: Yii  Framework Tutorial español

TUTORIAL BASICO PARA Yii FRAMEWORK

LUIS ALBERTO ORDOÑEZ

INGENIERIA DE SOTFWARE III

UNIVERSIDAD DEL CAUCA

FACULTAD DE INGENIERÍA ELECTRÓNICA Y TELECOMUNICACI ONES

INGENIERÍA DE SISTEMAS

POPAYÁN (CAUCA) 30 de mayo de 2012

Page 2: Yii  Framework Tutorial español

Tabla de contenido

Introducción ....................................................................................................................... 3

Instalación ......................................................................................................................... 4

Información general ........................................................................................................... 7

Mi primer ejemplo .............................................................................................................. 8

Manipulación 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

Page 3: Yii  Framework Tutorial español

Introducción.

Yii es un framework PHP basado en componentes para desarrollar aplicaciones Web de gran escala. El mismo permite la máxima reutilización en la programación web y puede acelerar el proceso de desarrollo.

Para desarrolladores que deseen utilizar Yii, el entendimiento de Programación Orientada a Objetos (POO) será de grán ayuda ya que Yii es un framework totalmente basado en POO. Yii es un framework generico de programación 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 tráfico como portales, foros, sistemas de administración de contenidos, Sistemas de comercio electrónico, etc.

Como la mayoría de los frameworks PHP, Yii es un framework MVC (modelo-vista-ontrolador), Yii sobresale frente a frameworks PHP en su eficiencia, su gran cantidad de características, Yii ha sido diseñado 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 investigación y la reflexión de los más populares los frameworks de programación Web y aplicaciones.

Page 4: Yii  Framework Tutorial español

Instalación

Para hacer instalación de nuestro framework Yii nos remitimos a la página oficial de yii http://www.yiiframework.com/ en donde podemos descargar el framework, una vez descargado lo descomprimimos y lo copiamos en la raíz del directorio de publicaciones de nuestro servidor, en este caso utilizare wamp.

El directorio raíz de wamp nos quedaría 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…

Como se muestra en las siguientes fotografías.

Page 5: Yii  Framework Tutorial español

En donde dice Valor de la variable path se coloca las direcciones en donde se encuentran nuestros ejecutables de la aplicación 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

Page 6: Yii  Framework Tutorial español

Por ultimo creamos nuestra aplicación por medio de la terminal de Windows de la siguiente manera.

Abrimos una terminal DOS, nos ubicamos en la raíz del directorio de publicaciones y escribimos el siguiente comando como se ve en la siguiente fotografía de la terminal

yiic es el framework utilizado.

Webapp es el tipo de aplicación que estamos creando

website es el nombre de nuestra aplicación.

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.

Page 7: Yii  Framework Tutorial español

Información 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 patrón.

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 aplicación.

Images: almacena todas las imágenes de toda la aplicación

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 intermediación entre las vistas y la lógica del negocio o modelos.

models: se implementa la lógica del negocio de la aplicación

view: se implementan absolutamente todas las vistas de la aplicación, 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 aplicación

localhost/website

Page 8: Yii  Framework Tutorial español

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 también la hoja de estilo si no nos gusta. Este index como o dije anteriormente esta en la carpeta view donde están todas nuestras vistas.

Mi primer ejemplo

En el proceso de aprendizaje de cualquier famework es recomendable partir de lo mas básico y este no va a ser la excepción, es por eso que a continuación mostrare como hacer el famoso “hola mundo…” respetando el patrón de diseño 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 mayúscula, seguido de la palabra Controller con “C” en mayúscula 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

después la palabra action seguido del Nombre de la acción empezando en mayúscula, dentro de estas funciones va la lógica de la aacion.

Page 9: Yii  Framework Tutorial español

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 línea 5 declara la variable saludo y le asigna una cadena “hola mundo”

La línea 6 es una función heredada de la clase controller la cual me permite reiterisar con la posibilidad de enviar parámetros o no!.

Para este caso mandaremos la variables $saludo como parámetro, entonces el primer parámetro de render es la vista que vamos reiterisar y el segundo es una array de parámetros 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 código 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 minúsculas y en esta guardamos el archivo index.php que contiene la vista como tal.

En la siguiente imagen muestro lo dicho anteriormente.

Page 10: Yii  Framework Tutorial español

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 acción o vista a reiterizar.

Con esto hemos empezado a manejar nuestro framework yii con MVC aunque todavía nos falta manejar los modelos, que lo aremos a continuación.

Page 11: Yii  Framework Tutorial español

Manipulación 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 también elaborado en con Yii framework

Entonces empezamos configurando Yii framework para la base.

Vamos a “protected/config/main.php” en donde des comentamos las líneas 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 mayúscula, esto es recomendable puesto que el framework esta diseñado 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 ilustración mirar la siguiente imagen que muestra el controlador para este caso de estudio.

Page 12: Yii  Framework Tutorial español

Como podemos observar dentro del modelo User tenemos una función llamada model, la cual nos permite cargar el modelo. Controlador: la sintaxis de la creación de los controladores ya las mencione anteriormente entonces el controlador de nuestra tabla quedaría de la siguiente manera

Page 13: Yii  Framework Tutorial español

De paso creamos una función llamada actionIndex que su propósito general es reiterizarme una vista llamada index que me va a mostrar todos los datos de la tabla.

En la línea 7 asignamos a la variable model el modelo de la tabla user que nos devuelve el método estarico model() implementado en el modelo User.

Ya teniendo el modelo ya puedo hace consultas sobre esta tabla.

E la línea 8 asignamos a la variable local user todos los datos de la tabal con la función findAll()

En la línea 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 minúsculas 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 acción o vista a reiterisar.

Page 14: Yii  Framework Tutorial español

Muy bn.. entonces ahora vamos a hacerle el CRUD a esta tabla.

Cread

Agregamos el siguiente código a UserController

Esta acción me permite adicionar un nuevo usuario al sistema

Línea 32 se crea un moelo User y se guarda en la variable $model

Línea 33 se verifica si el romulario trae valores por post

Línea 35 asigna los valores del formulario a ala variable $model

Línea 36 guarda los datos sean por primera vez

Línea 37 redirexiona a view para terminar

Línea 39 reiterisa la vista add para ingresar los campos Creamos la vista add

Page 15: Yii  Framework Tutorial español

Estos formularios se crean de manera especial, parecida a los helpers

Línea 2 abrimos el formulario

Línea 4 escribimos un indicador “Primer Nombre”

Línea 5 captura el primer nombre.

Línea 24 hacemos el botón que nos envía el formulario obtenido anteriormente al UserController

Read

Agregamos el siguiente código a UserController

Esta acción nos permite visualizar con los detalles de un ususario

Línea 12 la función recibe el id el cual nos sirve para obtener el usuario desde la base de datos

Línea 14 obtenemos un solo objeto del modelo

Línea 15 reiterizamos la vista view enciandole el objeto anteriormente consultado

Creamos la vista view

Page 16: Yii  Framework Tutorial español

Utilizamos el parámetro enviado para consultar cada uno campos y mostrarlos

Update

Agregamos el siguiente código a UserController

Esta acción me permite editar un usuario del sistema

Linea 18 esta acción recibe el id del usuario que se va a editar

Línea 20 obtiene un registro por id y se guarda en la variable $model

Línea 21 se verifica si el romulario trae valores por post

Línea 23 asigna los valores del formulario a ala variable $model

Línea 24 guarda los datos que sean editados

Línea 25 redirexiona a view para terminar y le envía como parámetro el id

Linear 27 si no llegan datos por post reiterisa los campos a cambia por medio de la vista edit

Page 17: Yii  Framework Tutorial español

Creamos la vista edit

Estos formularios se crean de manera especial, parecida a los helpers

Línea 2 abrimos el formulario

Línea 4 escribimos un indicador “Primer Nombre”

Línea 5 captura el primer nombre.

Línea 24 hacemos el botón que nos envía el formulario obtenido anteriormente al UserController

Delete

Agregamos el siguiente código a UserController

Page 18: Yii  Framework Tutorial español

Esta acción permite eliminar un registro por medio del id

Línea 44 obtiene un registro por medio del id de la tabla user

Línea 45 elimina el registro

Línea 46 reiterisa la vista index

Generar los links para usar el CRUD

Para poder hace el llamado a cada una de las acciones echas anteriormente debemos generar esos links en la vista index de la siguiente manera.

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 posición es la acción y de ahí hacia adelante son los parámetros que sele envían al controlado

El código de la aplicación esta disponible en: http://dl.dropbox.com/u/72997754/website.rar

Page 19: Yii  Framework Tutorial español

Conclusiones o lecciones aprendidas

� En el área de desarrollo web se encuentran una gran variedad de framework que están esperando por ser descubiertos y estudiados, estas herramientas unas mas eficientes que otras cumplen con su objetivo que es hacer que el programador se base mas en la arquitectura como tal y no por detalles de bajo nivel por así decirlo.

� Yii framework me parece una excelente y muy poderosa herramienta para le desarrollo rápido y ágil de aplicaciones web, tiene una buena distribución o lógica que hace que su aprendizaje tenga una curva muy favorable para principiantes en los framework en general.

� Es muy importante en nuestra vida profesional no ceñirnos o casarnos con un lenguaje o framework en general porque podemos estar perdiendo la oportunidad de conocer herramientas mucho mas eficientes, personalmente aunque es muy corta la experiencia que tengo con yii framework pero puedo afirmar que va a se una herramienta que utilizare por un buen tiempo para el desarrollo web.

Referencias

[1]. http://www.yiiframework.com/

[2]. http://es.wikipedia.org/wiki/Yii [3]. http://caraballomaestre.blogspot.com/2011/05/por-que-yii-framework.html [4]. http://yiiframework.wordpress.com/