introducción a yii2

Post on 14-Apr-2017

531 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

   

Desarrollo web ágilIntroducción a Yii

http://www.yiiframework.com/

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

   

Por que PHP?

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

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

Por que MVC?

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

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

● Agiliza el desarrollo.

Por que Yii?

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

Por que Yii?

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 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)

Yii ­ Instalación

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

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

Yii ­ Instalación

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 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

Yii ­ Instalación

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 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

Yii ­ Instalación

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

CookieValidationKey' 

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

Yii ­ Instalación

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

Fin Instalación :)

Yii – Estructura 

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

Ejemplo

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

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

Ejemplo

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 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)); 

Ejemplo

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

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

MySQL

Ejemplo

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 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

Ejemplo

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

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

Para el ejemplo usaremos sqlite

Ejemplo

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 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

GII

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

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

Ejemplo

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 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)); 

GII ­ Model

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

Modelo Tabla Users

GII ­ Model

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

Modelo Tabla Users

GII ­ Model

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

Modelo Tabla Users

GII ­ Model

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

Modelo Tabla Users

GII ­ Model

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

Modelo Tabla Users

GII ­ Controller

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

GII ­ Controller

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

GII ­ Controller

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

GII ­ Controller

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

GII ­ Controller

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

index.php?r=users/create

GII ­ Controller

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

index.php?r=users/view

GII ­ Vistas

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

index.php?r=users/index

GII ­ Controller

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

delete

Widget Install

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

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

https://getcomposer.org/

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

Widget Install

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 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

Widget Install

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 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 "*"

Widget Install

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 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á)

Widget Install

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

Resultado final :D

Widget Install

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 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

Widget Install

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 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á)

Widget Install

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

Resultado Final

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

FIN

top related