PDF de programación - Entendiendo Yii Framework

Imágen de pdf Entendiendo Yii Framework

Entendiendo Yii Frameworkgráfica de visualizaciones

Publicado el 3 de Junio del 2021
579 visualizaciones desde el 3 de Junio del 2021
1,3 MB
29 paginas
Creado hace 7a (29/04/2016)
@plattinux

Entendiendo Yii Framework



Lenin Hernandez

[email protected]
leninmhs.wordpress.com

www.plattinux.com.ve / @plattinux

Página 1 / 29

Un Framework es un conjunto de código, librerías y
componentes probados y optimizados para facilitar y
agilizar el desarrollo de aplicaciones, basado en mejores
prácticas de desarrollo, que nos permitirán trabajar de
forma uniforme, organizada y con la mayor calidad posible.
Normalmente cuentan con documentación, una comunidad
que lucha por su desarrollo y mantenimiento.

- Yii (PHP) - yiiframework.com
- Symfony (PHP)- symfony-project.org
- CakePHP (PHP) - cakephp.org
- CodeIgniter (PHP) – codeigniter.com
- Laravel (PHP) – laravel.com
- Ruby on Rails (Ruby) – rubyonrails.org
- Catalyst (Perl) – catalystframework.org
- Django (Python) - djangoproject.com



www.plattinux.com.ve / @plattinux

Página 2 / 29

”Yii es un framework de alto rendimiento escrito en PHP
para el desarrollo rápido de aplicaciones web”

Sobre 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 para desarrollar aplicaciones de gran
tráfico como
portales, foros, sistemas de administración de contenidos (CMS),
Sistemas
etc.
www.yiiframework.com

(e-commerce),

electrónico

de

comercio

- Simple, Sencillo, Humilde.
- Curva de Aprendizaje no es empinada.
- Esta hecho para funcionar por defecto.
- Rápido (Puesta en Marcha y aplicación).
- Facilita el Desarrollo de Software en equipos



Yes, it is

www.plattinux.com.ve / @plattinux

Página 3 / 29

Características Yii

- Patrón MVC, Modelo - Vista - Controlador
- Auto Generación de Código (Scaffolding) CRUD
- Validaciones
- Poderoso soporte a Bases de Datos
- Full Soporte Ajax, jQuery integrado
- Autenticación y Autorización
- Gestión de errores y logging
- Urls Amigables
- Seguridad, Prevención de ataques comunes
- Sistema de Cache, de session
- Soporte a Código de Terceros y Extensiones
- Soporte de Temas y Skins
- Internacionalización (I18N) y Localización (L10N)
- Soporte de Pruebas Funcionales y Unitarias
- Documentación Detallada y Extensa Comunidad



www.plattinux.com.ve / @plattinux

Página 4 / 29

Sobre MVC

MVC – Modelo, Vista y Controlador



www.plattinux.com.ve / @plattinux

Página 5 / 29

Extensiones

Mas de 2044 extensiones
http://www.yiiframework.com/extensions/

Categorías

● Autenticación ● Cache ● 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 así:
- Colocar en el directorio extensions ubicado dentro de protected
- llamarla desde la aplicación así:
Yii::createComponent('application.extensions.tulibreria');



www.plattinux.com.ve / @plattinux

Página 6 / 29

Apariencia / Themes

Por defecto interfaz enriquecida con CSS y JQuery



www.plattinux.com.ve / @plattinux

Página 7 / 29

Apariencia / Themes

http://yii.themefactory.net/



www.plattinux.com.ve / @plattinux

Página 8 / 29

Yii funciona de lujo con servidores web ligeros y de alto rendimiento como:

Rendimiento en Yii

Yii esta preparado y optimizado para trabajar con servidores de Cache como:

PHP APCu



www.plattinux.com.ve / @plattinux

Página 9 / 29

Aplicaciones en Yii

Conocer mas sistemas desarrollados en YII:
http://yii.poweredsites.org/
http://www.yiiframework.com/forum/index.php?/forum/14-yii-powered-applications/



www.plattinux.com.ve / @plattinux

Página 10 / 29

Aplicaciones en Yii

Conocer mas sistemas desarrollados en YII:
http://yii.poweredsites.org/
http://www.yiiframework.com/forum/index.php?/forum/14-yii-powered-applications/



www.plattinux.com.ve / @plattinux

Página 11 / 29

Aplicaciones en Yii de Plattinux



www.plattinux.com.ve / @plattinux

Página 12 / 29

Aplicaciones en Yii de Plattinux



www.plattinux.com.ve / @plattinux

Página 13 / 29

Aplicaciones en Yii de Plattinux



www.plattinux.com.ve / @plattinux

Página 14 / 29

Instalar y arrancar Yii

1 - Instalamos servidor web, lenguaje de programación y base de datos en software libre

aptitude install apache2 php5 php5-cli postgresql-9.4 php5-pgsql

2 – Descargamos y descomprimimos en document root, Renombramos de yii-1.1.17.467ff50 a yii

http://www.yiiframework.com/download/

3 – Ejecutamos la creación de una estructura de sistema en Yii

www$php yii/framework/yiic.php webapp yiitwitter/
Create a Web application under '/home/leninmhs/www/yiitwitter'? (yes|no) [no]:



www.plattinux.com.ve / @plattinux

Página 15 / 29

Demostración:

Acción de demostrar que determinada cosa es verdad o se cumple.

Demostración

1 – Configuraremos nuestra aplicación

2 – Generaremos un modulo que inserte, modifique y elimine en base de
datos postgreSQL

3 – Generaremos gráfico de torta y de barras



www.plattinux.com.ve / @plattinux

Página 16 / 29

Diagrama Entidad – Relación / PostgreSQL
Base de Datos: flisol2016

Modelo de datos práctica Yii



www.plattinux.com.ve / @plattinux

Página 17 / 29

Instalar y arrancar Yii

Manos a la obra programemos nuestro sistema...



www.plattinux.com.ve / @plattinux

Página 18 / 29

Recorrido interfaz de Yii

http://localhost/flisol2016/

Configuración de Yii

Archivo de configuración Yii

www/flisol2016/protected/config/main.php

Cadena de conexión a base de datos

www/yiitwitter/protected/config/database.php

'db'=>array(

),

'connectionString' => 'pgsql:host=localhost;dbname=flisol2016',
'emulatePrepare' => true,
'username' => 'postgres',
'password' => 'tuclave',
'charset' => 'utf8',

Habilitar módulo de generación Gii

'gii'=>array(

'class'=>'system.gii.GiiModule',
'password'=>'Enter Your Password Here',
// If removed, Gii defaults to localhost only. Edit carefully to taste.
'ipFilters'=>array('127.0.0.1','::1'),

Descomentar este bloque

),



Acceder a Gii → localhost/flisol2016/index.php?r=gii



www.plattinux.com.ve / @plattinux

Página 19 / 29

Directorios Yii

Estructura general

Controladores

Modelos

Vistas
Vistas



www.plattinux.com.ve / @plattinux

Página 20 / 29

Luego de generar los modelos y CRUD...

Ajustaremos el formulario en flisol2016/protected/views/participante/_form.php

Formularios en Yii

● Comentamos el campo “fecha_creacion”
● Agregamos 'format'=>'yyyy/mm/dd' en options al datePickerGroup
● Sustituimos textFieldGroup por textAreaGroup en el campo biografía
● Sustituir textFieldGroup por fileFieldGroup en el campo foto_perfil
● Agregar en la declaración del formulario: 'htmlOptions' => array('enctype' =>

'multipart/form-data'),

● Comentar el campo fk_curso y agregar lo siguiente:
<?php
echo $form->dropDownListGroup($model, 'fk_curso', array('wrapperHtmlOptions' => array('class' => 'col-sm-5',),
'widgetOptions' => array(
'data' => CHtml::listData(Curso::model()->findAll(array('order' => 'nombre')), 'id_curso', 'nombre'),
'htmlOptions' => array('empty' => 'Seleccione el curso en el que quisiera participar'),
))); ?>



www.plattinux.com.ve / @plattinux

Página 21 / 29

Validaciones YiiBooster

Validaciones en los modelos de Yii

array('correo', 'email'),

array('sitioweb', 'url'),

array('cedula, correo', 'unique', 'caseSensitive'=>false ),

array('telefono', 'length', 'max'=>15),

array('foto_perfil', 'length', 'max' => 255, 'tooLong' => '{attribute} el nombre del archivo es muy
largo (max {max} caracteres).', 'on' => 'insert,upload'),

array('foto_perfil', 'file', 'types' => 'jpg,jpeg,gif,png', 'allowEmpty'=>true, 'maxSize' => 1024 * 1024
* 2, 'tooLarge' => 'La foto debe ser menor a 2MB !!!', 'on' => 'insert, upload'),

www.plattinux.com.ve / @plattinux

Página 22 / 29

Formularios YiiBooster
Para subir el archivo de la foto al servidor haremos lo siguiente:

En el controlador flisol2016/protected/controllers/ParticipanteController.php
Agregaremos en la acción actionCreate

Agregar después de $model->attributes y antes del save

$model->foto_perfil=CUploadedFile::getInstance($model,'foto_perfil');

Agregar dentro del save (colocarle las llaves al save)

if(!empty($model->foto_perfil)){
$model->foto_perfil->saveAs(Yii::getPathOfAlias('webroot')."/images/".$model->foto_perfil);
}



www.plattinux.com.ve / @plattinux

Página 23 / 29

Modificaremos el GridView → protected/view/usuario/admin

GridView en Yii

Ajustaremos los campos que muestra la grilla
'fk_curso' => array(

'name' => 'fk_curso',
'value' =>'$data->fkCurso->nombre',
'filter' => CHtml::listData(Curso::model()->findAll(), 'id_curso', 'nombre'),

),
'twitter'=> array(
'type'=>'raw',
'name'=>'twitter',
'value'=> 'Chtml::link($data->twitter, "http://twitter.com/".$data->twitter,array("target"=>"_blank") )',

),

),



array(

'foto_perfil'=>
'type'=>'html',
'header'=>'Foto',
'name'=>'foto_perfil',
'value'=>'CHtml::image(Yii::app()->baseUrl."/images/".$data->foto_perfil,"$data-
>foto_perfil",array("height"=>"80", "width"=>"80") )',
'filter' =>'',
),

'fecha_creacion' => array(

'header'=>'Registrado en',
'name'=>'fecha_creacion',
'value' => 'date("d/m/Y", strtotime($data->fecha_creacion))' ,
'htmlOptions'=>array('width'=>'120px', 'style' => 'text-align: center;'),



www.plattinux.com.ve / @plattinux

Página 24 / 29

Gráficos estadísticos



www.plattinux.com.ve / @plattinux

Página 25 / 29

Generar gráficos estadísticos en Yii

Crearemos la siguiente acción y la agregaremos en
protected/controllers/ParticipanteController.php:
public function actionEstadisticaCurso() {

$titulo = "Cantidad de Cursos Disponibles";
$subtitulo = "Datos tomados hasta el ".date("d/m/Y h:m A");

$consulta = Yii::app()->db->createCommand('SELECT p.id_curso, p.nombre,
(SELECT COUNT(u.id_participante)
  • Links de descarga
http://lwp-l.com/pdf19267

Comentarios de: Entendiendo Yii Framework (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad