introducción a yii2

41
 Desarrollo web ágil Introducción a Yii http://www.yiiframework.com/ Por: Leonardo Bravo Illanes [email protected] 2015

Upload: -

Post on 14-Apr-2017

535 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Introducción a Yii2

   

Desarrollo web ágilIntroducción a Yii

http://www.yiiframework.com/

Por: Leonardo Bravo Illanes [email protected] 2015

Page 2: Introducción a Yii2

   

Por que PHP?

Por: Leonardo Bravo Illanes [email protected] 2015

W3Techs, “Historical trends in the usage of server­side programminglanguages for websites”.

Page 3: Introducción a Yii2

Por que MVC?

Por: Leonardo Bravo Illanes [email protected] 2015

● Incrementa la reutilización de código, esto facilita la mantención y evolución del proyecto.

● Agiliza el desarrollo.

Page 4: Introducción a Yii2

Por que Yii?

Por: Leonardo Bravo Illanes [email protected] 2015

Page 5: Introducción a Yii2

Por que Yii?

Por: Leonardo Bravo Illanes [email protected] 2015

 En el gráfico, RPS significa "solicitud por segundo", que describe el número de solicitudes una aplicación escrita en un marco puede procesar por segundo. Cuanto mayor sea el número, más eficiente es un marco. Como podemos ver que Yii supera a todos los otros marcos en esta comparación. (APC = Alternative PHP Cache)

Page 6: Introducción a Yii2

Yii ­ Instalación

Por: Leonardo Bravo Illanes [email protected] 2015

Requisitos:● PHP5 o superior● Webservice (Apache u Otro)● Base de Datos (Sqlite3, MySQL, PostgreSQL)

Page 7: Introducción a Yii2

Yii ­ Instalación

Por: Leonardo Bravo Illanes [email protected] 2015

● Descargar la ultima versión Oficial (Zip / Tar.gz)● Descomprimir en la carpeta de desarrollo● Modificar el archivo “config/web.php “ y ingresar un código random para cookieValidationKey

Page 8: Introducción a Yii2

Yii ­ Instalación

Por: Leonardo Bravo Illanes [email protected] 2015

sudo apt­get install ­y php5 apache2 sqlite3 php5­sqliteecho "Ingrese nombre del Sitio web (sin espacios):"read webname

wget https://github.com/yiisoft/yii2/releases/download/2.0.6/yii­basic­app­2.0.6.tgztar ­xzvf yii­basic­app­2.0.6.tgzmv basic $webnamecd $webname

path=$(pwd)link_apache=$(echo $path"/web/ /var/www/html/"$webname)sudo ln ­s $link_apachesudo chmod 777 ­R *

 Luego el sitio web estará disponible en: http://localhost/"$webname

Page 9: Introducción a Yii2

Yii ­ Instalación

Por: Leonardo Bravo Illanes [email protected] 2015

CookieValidationKey' 

Editar “config/web.php” y colocar una clave random para las Cookies

Page 10: Introducción a Yii2

Yii ­ Instalación

Por: Leonardo Bravo Illanes [email protected] 2015

Fin Instalación :)

Page 11: Introducción a Yii2

Yii – Estructura 

Por: Leonardo Bravo Illanes [email protected] 2015

Page 12: Introducción a Yii2

Ejemplo

Por: Leonardo Bravo Illanes [email protected] 2015

Sistema de Publicación e Inscripción de eventos:

Page 13: Introducción a Yii2

Ejemplo

Por: Leonardo Bravo Illanes [email protected] 2015

sqlite3 database> CREATE TABLE Rol (id integer primary key not null, rolname varchar(50));

> CREATE TABLE Users (id integer primary key not null, name varchar(50), passwd varchar(100), id_rol integer, FOREIGN KEY(id_rol) REFERENCES Rol(id));

> CREATE TABLE Event (id integer primary key not null, id_admin integer, name varchar(50), photo varchar(100), description text, date_ini datetime, date_end datetime, place varchar(100), contact varchar(100), FOREIGN KEY(id_admin) REFERENCES Users(id));

> CREATE TABLE Registration (id integer primary key not null, id_event integer, name varchar(100), mail varchar (100), FOREIGN KEY(id_event) REFERENCES Event(id)); 

Page 14: Introducción a Yii2

Ejemplo

Por: Leonardo Bravo Illanes [email protected] 2015

Configurar Yii con la Base de DatosEditar el archivo “config/db.php”

MySQL

Page 15: Introducción a Yii2

Ejemplo

Por: Leonardo Bravo Illanes [email protected] 2015

Configurar Yii con la Base de DatosEditar el archivo “config/db.php”

dns:

●   SQLite: sqlite:/path/to/dbfile●   MySQL/MariaDB: mysql:host=localhost;dbname=testdb●   PostgreSQL: pgsql:host=localhost;port=5432;dbname=testdb●   SQL Server: mssql:host=localhost;dbname=testdb●   Oracle: oci:dbname=//localhost:1521/testdb

Page 16: Introducción a Yii2

Ejemplo

Por: Leonardo Bravo Illanes [email protected] 2015

Configurar Yii con la Base de DatosEditar el archivo “config/db.php”

Para el ejemplo usaremos sqlite

Page 17: Introducción a Yii2

Ejemplo

Por: Leonardo Bravo Illanes [email protected] 2015

Configurar Yii con la Base de Datos● Copiamos la BDD SQLite a la carpeta “config/”● Dar permisos de ejecución, lectura y escritura a la Base de Datos

Page 18: Introducción a Yii2

GII

Por: Leonardo Bravo Illanes [email protected] 2015

● Ir a “index.php?r=gii”

Page 19: Introducción a Yii2

Ejemplo

Por: Leonardo Bravo Illanes [email protected] 2015

sqlite3 database> CREATE TABLE Rol (id integer primary key not null, rolname varchar(50));

> CREATE TABLE Users (id integer primary key not null, name varchar(50), passwd varchar(100), id_rol integer, FOREIGN KEY(id_rol) REFERENCES Rol(id));

> CREATE TABLE Event (id integer primary key not null, id_admin integer, name varchar(50), photo varchar(100), description text, date_ini datetime, date_end datetime, place varchar(100), contact varchar(100), FOREIGN KEY(id_admin) REFERENCES Users(id));

> CREATE TABLE Registration (id integer primary key not null, id_event integer, name varchar(100), mail varchar (100), FOREIGN KEY(id_event) REFERENCES Event(id)); 

Page 20: Introducción a Yii2

GII ­ Model

Por: Leonardo Bravo Illanes [email protected] 2015

Modelo Tabla Users

Page 21: Introducción a Yii2

GII ­ Model

Por: Leonardo Bravo Illanes [email protected] 2015

Modelo Tabla Users

Page 22: Introducción a Yii2

GII ­ Model

Por: Leonardo Bravo Illanes [email protected] 2015

Modelo Tabla Users

Page 23: Introducción a Yii2

GII ­ Model

Por: Leonardo Bravo Illanes [email protected] 2015

Modelo Tabla Users

Page 24: Introducción a Yii2

GII ­ Model

Por: Leonardo Bravo Illanes [email protected] 2015

Modelo Tabla Users

Page 25: Introducción a Yii2

GII ­ Controller

Por: Leonardo Bravo Illanes [email protected] 2015

Page 26: Introducción a Yii2

GII ­ Controller

Por: Leonardo Bravo Illanes [email protected] 2015

Page 27: Introducción a Yii2

GII ­ Controller

Por: Leonardo Bravo Illanes [email protected] 2015

Page 28: Introducción a Yii2

GII ­ Controller

Por: Leonardo Bravo Illanes [email protected] 2015

Page 29: Introducción a Yii2

GII ­ Controller

Por: Leonardo Bravo Illanes [email protected] 2015

index.php?r=users/create

Page 30: Introducción a Yii2

GII ­ Controller

Por: Leonardo Bravo Illanes [email protected] 2015

index.php?r=users/view

Page 31: Introducción a Yii2

GII ­ Vistas

Por: Leonardo Bravo Illanes [email protected] 2015

index.php?r=users/index

Page 32: Introducción a Yii2

GII ­ Controller

Por: Leonardo Bravo Illanes [email protected] 2015

delete

Page 33: Introducción a Yii2

Widget Install

Por: Leonardo Bravo Illanes [email protected] 2015

Composer es una herramienta para la gestión de la dependencia en PHP.

https://getcomposer.org/

http://www.yiiframework.com/extension/yii2­widgets/

Page 34: Introducción a Yii2

Widget Install

Por: Leonardo Bravo Illanes [email protected] 2015

Por ejemplo en Event – Create, añadiremos un widget para las fechas

Instalar Composer

1) Ir a la carpeta del proyecto 2) Decargar composer 

curl ­sS https://getcomposer.org/installer | php

Page 35: Introducción a Yii2

Widget Install

Por: Leonardo Bravo Illanes [email protected] 2015

Por ejemplo en Event – Create, añadiremos un widget para las fechas

Instalación Widget

php composer.phar require kartik­v/yii2­widget­datetimepicker "*"

Page 36: Introducción a Yii2

Widget Install

Por: Leonardo Bravo Illanes [email protected] 2015

Por ejemplo en Event – Create, añadiremos un widget para las fechas

Implementación Widget1)Ir a “views/event/_form.php”2) Importar al inicio el widget con

use kartik\datetime\DateTimePicker;3)Comentar el campo para “date_ini”

<?php /* $form­>field($model, 'date_ini')­>textInput() */ ?>4)Escribir el widget

1)    <?php    echo $form­>field($model, 'date_ini')­>widget(DateTimePicker::classname(), [

       'options' => ['placeholder' => 'Enter event time ...'],        'pluginOptions' => [

      'autoclose' => true         ]

           ]);  ?>

5)Ejemplos (Acá)6)Git proyecto (Acá)

Page 37: Introducción a Yii2

Widget Install

Por: Leonardo Bravo Illanes [email protected] 2015

Resultado final :D

Page 38: Introducción a Yii2

Widget Install

Por: Leonardo Bravo Illanes [email protected] 2015

Otro Ejemplo!!!! :)Añadiremos un widget para las áreas de texto, llamado ckeditor

Instalación widget

composer require 2amigos/yii2­ckeditor­widget:~1.0

Page 39: Introducción a Yii2

Widget Install

Por: Leonardo Bravo Illanes [email protected] 2015

Otro Ejemplo!!!! :)Añadiremos un widget para las áreas de texto, llamado ckeditor

Implementación1) Ir a “views/_form.php”2) Importar al inicio el widget con

use dosamigos\ckeditor\CKEditor;3)Comantar el campo para “description”

<?php /* $form­>field($model, 'description')­>textarea(['rows' => 6]) */ ?>4)Agregar el widget

    <?= $form­>field($model, 'description')­>widget(CKEditor::className(), [        'options' => ['rows' => 6],        'preset' => 'full' // basic    ]) ?>

5)Git Proyecto (Acá)

Page 40: Introducción a Yii2

Widget Install

Por: Leonardo Bravo Illanes [email protected] 2015

Resultado Final

Page 41: Introducción a Yii2

Por: Leonardo Bravo Illanes [email protected] 2015

FIN