• No se han encontrado resultados

Desarrollo web ágil Introducción a Yii.

N/A
N/A
Protected

Academic year: 2021

Share "Desarrollo web ágil Introducción a Yii."

Copied!
41
0
0

Texto completo

(1)

   

Desarrollo web ágil

Introducción a Yii

http://www.yiiframework.com/

(2)

   

Por que PHP?

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

W3Techs, “Historical trends in the usage of server­side programming

languages for websites”.

(3)

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.

(4)

Por que Yii?

(5)

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)

(6)

Yii ­ Instalación

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

Requisitos:

PHP5 o superior

Webservice (Apache u Otro)

(7)

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

(8)

Yii ­ Instalación

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

sudo apt­get install ­y php5 apache2 sqlite3 php5­sqlite

echo 

"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.tgz

tar ­xzvf yii­basic­app­2.0.6.tgz

mv basic 

$webname

cd

 $webname

path

=$(

pwd)

link_apache

=$(

echo 

$path

"/web/ /var/www/html/"

$webname

)

sudo ln ­s

 $link_apache

sudo chmod 777 ­R *

(9)

Yii ­ Instalación

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

CookieValidationKey' 

(10)

Yii ­ Instalación

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

(11)

Yii – Estructura 

(12)

Ejemplo

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

(13)

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)); 

(14)

Ejemplo

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

Configurar Yii con la Base de Datos

Editar el archivo “config/db.php”

(15)

Ejemplo

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

Configurar Yii con la Base de Datos

Editar 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

(16)

Ejemplo

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

Configurar Yii con la Base de Datos

Editar el archivo “config/db.php”

(17)

Ejemplo

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

Configurar Yii con la Base de Datos

Copiamos la BDD SQLite a la carpeta “config/”

(18)

GII

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015 ●

Ir a “index.php?r=gii”

(19)

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)); 

(20)

GII ­ Model

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

Modelo Tabla Users

(21)

GII ­ Model

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

Modelo Tabla Users

(22)

GII ­ Model

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

Modelo Tabla Users

(23)

GII ­ Model

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

Modelo Tabla Users

(24)

GII ­ Model

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

Modelo Tabla Users

(25)

GII ­ Controller

(26)

GII ­ Controller

(27)

GII ­ Controller

(28)

GII ­ Controller

(29)

GII ­ Controller

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

(30)

GII ­ Controller

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

(31)

GII ­ Vistas

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

(32)

GII ­ Controller

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

(33)

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/

(34)

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 

(35)

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

(36)

Widget Install

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

Por ejemplo en Event – Create, añadiremos un

 widget para las fechas

Implementación Widget

1)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á

)

(37)

Widget Install

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

(38)

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

(39)

Widget Install

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

Otro Ejemplo!!!! :)

Añadiremos un widget para las áreas de texto, llamado ckeditor

Implementación

1) 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

    ]) 

?>

(40)

Widget Install

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

(41)

Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015

Referencias

Documento similar

Supplementary Table S3: Dysregulated genes in SA1-null

To overcome these problems and create a company and freelance database for Spain at municipality level and above, we drew on the web scraping technique to build a set of R functions

• A materia consta de seis créditos, distribuídos en sesenta horas de clase, das que aproximadamente 45 son teórico- prácticas e 15 corresponden a seminarios. As clases teñen

Mientras los estudios sobre Sanjinés y sobre el cine latinoamericano han aceptado por regla general esta genealogía, con Ukamau/«Ukamau» como punto de origen, me gustaría

El objetivo del proyecto es el diseño, desarrollo y documentación de una arquitectura ligera de referencia para el desarrollo ágil de proyectos web Single-Page

Clinical Infections by Herpesviruses in Patients Treated with Valproic Acid: A Nested Case-Control Study in the Spanish Primary Care Database, BIFAP.. Miguel Gil 1, *,

~la dr id, el n ::tralismo no solamente se ha negado a realizarla, sino que no ha permitido que ellos misnv:&gt;s la realicen. ~o creo que pueda haber en todo este

Su correo-e o su número de ResearcherID le servirá para entrar en la página web y gestionar su listado de publicaciones... Researcher