SlideShare una empresa de Scribd logo
1 de 41
Descargar para leer sin conexión
   
Desarrollo web ágil
Introducció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 programming
languages 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­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 *
 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 Datos
Editar el archivo “config/db.php”
MySQL
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
Ejemplo
Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015
Configurar Yii con la Base de Datos
Editar 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 Widget
1)Ir a “views/event/_form.php”
2) Importar al inicio el widget con
use kartikdatetimeDateTimePicker;
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ón
1) Ir a “views/_form.php”
2) Importar al inicio el widget con
use dosamigosckeditorCKEditor;
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

Más contenido relacionado

Destacado

Yii2
Yii2Yii2
Yii2Noveo
 
Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...
Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...
Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...Tchelinux
 
Arquitetura ARM - Raspberry Pi
Arquitetura ARM - Raspberry PiArquitetura ARM - Raspberry Pi
Arquitetura ARM - Raspberry PiJuliane Silva
 
Creating applications with Grails, Angular JS and Spring Security
Creating applications with Grails, Angular JS and Spring SecurityCreating applications with Grails, Angular JS and Spring Security
Creating applications with Grails, Angular JS and Spring SecurityAlvaro Sanchez-Mariscal
 

Destacado (7)

Palestra yii2
Palestra yii2Palestra yii2
Palestra yii2
 
Yii2
Yii2Yii2
Yii2
 
Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...
Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...
Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...
 
Arquitetura ARM - Raspberry Pi
Arquitetura ARM - Raspberry PiArquitetura ARM - Raspberry Pi
Arquitetura ARM - Raspberry Pi
 
Framework Yii
Framework YiiFramework Yii
Framework Yii
 
Framework Yii
Framework YiiFramework Yii
Framework Yii
 
Creating applications with Grails, Angular JS and Spring Security
Creating applications with Grails, Angular JS and Spring SecurityCreating applications with Grails, Angular JS and Spring Security
Creating applications with Grails, Angular JS and Spring Security
 

Similar a Introducción a Yii2

La importancia de las APIs en los chatbots
La importancia de las APIs en los chatbotsLa importancia de las APIs en los chatbots
La importancia de las APIs en los chatbotsRolando Carrasco
 
APPSWEBI4.0.pptx
APPSWEBI4.0.pptxAPPSWEBI4.0.pptx
APPSWEBI4.0.pptx22040086
 
diseño local comercial aprender aqui
diseño local comercial aprender aquidiseño local comercial aprender aqui
diseño local comercial aprender aquiredundantenclos42
 
MuleSoft Anypoint Platform - Releases 2019
MuleSoft Anypoint Platform - Releases 2019 MuleSoft Anypoint Platform - Releases 2019
MuleSoft Anypoint Platform - Releases 2019 Larry Magallanes
 
Global integration bootcamp 2018 - Gobierno de APIs
Global integration bootcamp 2018 - Gobierno de APIsGlobal integration bootcamp 2018 - Gobierno de APIs
Global integration bootcamp 2018 - Gobierno de APIsAlberto Diaz Martin
 
Global Integration Bootcamp 2018 - Gobierno de APIs
Global Integration Bootcamp 2018 - Gobierno de APIsGlobal Integration Bootcamp 2018 - Gobierno de APIs
Global Integration Bootcamp 2018 - Gobierno de APIsAlberto Diaz Martin
 
Herramientas para desarrollar rápidamente
Herramientas para desarrollar rápidamenteHerramientas para desarrollar rápidamente
Herramientas para desarrollar rápidamenteCarlos Toxtli
 
Curso resumen de ingenieria de software digital
Curso resumen de ingenieria de software digitalCurso resumen de ingenieria de software digital
Curso resumen de ingenieria de software digitaldelgadoroberto
 
Arquitectura de Apis & GRPC | #JCONFPERU
Arquitectura de Apis & GRPC | #JCONFPERUArquitectura de Apis & GRPC | #JCONFPERU
Arquitectura de Apis & GRPC | #JCONFPERUJose Luis Bugarin Peche
 
MuleSoft Madrid Meetup #2 slides 29th January 2020
MuleSoft Madrid Meetup #2 slides 29th January 2020MuleSoft Madrid Meetup #2 slides 29th January 2020
MuleSoft Madrid Meetup #2 slides 29th January 2020Ieva Navickaite
 
Mulesoft Anypoint platform: Design Center
Mulesoft Anypoint platform: Design CenterMulesoft Anypoint platform: Design Center
Mulesoft Anypoint platform: Design CenterLarry Magallanes
 
Mis APIs. Tus APIs. Las APIs de todos.
Mis APIs. Tus APIs. Las APIs de todos.Mis APIs. Tus APIs. Las APIs de todos.
Mis APIs. Tus APIs. Las APIs de todos.Rolando Carrasco
 
Webinar Arquitectura de Microservicios
Webinar Arquitectura de MicroserviciosWebinar Arquitectura de Microservicios
Webinar Arquitectura de MicroserviciosDomingo Suarez Torres
 
comparava lenguajes web
comparava lenguajes webcomparava lenguajes web
comparava lenguajes webjohn_benitez
 

Similar a Introducción a Yii2 (20)

La importancia de las APIs en los chatbots
La importancia de las APIs en los chatbotsLa importancia de las APIs en los chatbots
La importancia de las APIs en los chatbots
 
Curso Superior de Desarrollo BackEnd I - CódigoK
Curso Superior de Desarrollo BackEnd I - CódigoK Curso Superior de Desarrollo BackEnd I - CódigoK
Curso Superior de Desarrollo BackEnd I - CódigoK
 
Curso CódigoK Back End (PHP + Laravel)
Curso CódigoK Back End (PHP + Laravel)Curso CódigoK Back End (PHP + Laravel)
Curso CódigoK Back End (PHP + Laravel)
 
APPSWEBI4.0.pptx
APPSWEBI4.0.pptxAPPSWEBI4.0.pptx
APPSWEBI4.0.pptx
 
Curso Superior de Desarrollo BackEnd II - CódigoK
Curso Superior de Desarrollo BackEnd II - CódigoK Curso Superior de Desarrollo BackEnd II - CódigoK
Curso Superior de Desarrollo BackEnd II - CódigoK
 
Arquitectura software
Arquitectura softwareArquitectura software
Arquitectura software
 
diseño local comercial aprender aqui
diseño local comercial aprender aquidiseño local comercial aprender aqui
diseño local comercial aprender aqui
 
Entendiendo Yii
Entendiendo YiiEntendiendo Yii
Entendiendo Yii
 
MuleSoft Anypoint Platform - Releases 2019
MuleSoft Anypoint Platform - Releases 2019 MuleSoft Anypoint Platform - Releases 2019
MuleSoft Anypoint Platform - Releases 2019
 
Global integration bootcamp 2018 - Gobierno de APIs
Global integration bootcamp 2018 - Gobierno de APIsGlobal integration bootcamp 2018 - Gobierno de APIs
Global integration bootcamp 2018 - Gobierno de APIs
 
Global Integration Bootcamp 2018 - Gobierno de APIs
Global Integration Bootcamp 2018 - Gobierno de APIsGlobal Integration Bootcamp 2018 - Gobierno de APIs
Global Integration Bootcamp 2018 - Gobierno de APIs
 
Desarrollo en el servidor
Desarrollo en el servidorDesarrollo en el servidor
Desarrollo en el servidor
 
Herramientas para desarrollar rápidamente
Herramientas para desarrollar rápidamenteHerramientas para desarrollar rápidamente
Herramientas para desarrollar rápidamente
 
Curso resumen de ingenieria de software digital
Curso resumen de ingenieria de software digitalCurso resumen de ingenieria de software digital
Curso resumen de ingenieria de software digital
 
Arquitectura de Apis & GRPC | #JCONFPERU
Arquitectura de Apis & GRPC | #JCONFPERUArquitectura de Apis & GRPC | #JCONFPERU
Arquitectura de Apis & GRPC | #JCONFPERU
 
MuleSoft Madrid Meetup #2 slides 29th January 2020
MuleSoft Madrid Meetup #2 slides 29th January 2020MuleSoft Madrid Meetup #2 slides 29th January 2020
MuleSoft Madrid Meetup #2 slides 29th January 2020
 
Mulesoft Anypoint platform: Design Center
Mulesoft Anypoint platform: Design CenterMulesoft Anypoint platform: Design Center
Mulesoft Anypoint platform: Design Center
 
Mis APIs. Tus APIs. Las APIs de todos.
Mis APIs. Tus APIs. Las APIs de todos.Mis APIs. Tus APIs. Las APIs de todos.
Mis APIs. Tus APIs. Las APIs de todos.
 
Webinar Arquitectura de Microservicios
Webinar Arquitectura de MicroserviciosWebinar Arquitectura de Microservicios
Webinar Arquitectura de Microservicios
 
comparava lenguajes web
comparava lenguajes webcomparava lenguajes web
comparava lenguajes web
 

Introducción a Yii2

  • 1.     Desarrollo web ágil Introducción a Yii http://www.yiiframework.com/ Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015
  • 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. ● Agiliza el desarrollo.
  • 4. Por que Yii? Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015
  • 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) ● Base de Datos (Sqlite3, MySQL, PostgreSQL)
  • 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 ● Modificar el archivo “config/web.php “ y ingresar un código random para cookieValidationKey
  • 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 *  Luego el sitio web estará disponible en: http://localhost/"$webname
  • 9. Yii ­ Instalación Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015 CookieValidationKey'  Editar “config/web.php” y colocar una clave random para las Cookies
  • 10. Yii ­ Instalación Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015 Fin Instalación :)
  • 11. Yii – Estructura  Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015
  • 12. Ejemplo Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015 Sistema de Publicación e Inscripción de eventos:
  • 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” MySQL
  • 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” Para el ejemplo usaremos sqlite
  • 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/” ● Dar permisos de ejecución, lectura y escritura a la Base de Datos
  • 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 Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015
  • 26. GII ­ Controller Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015
  • 27. GII ­ Controller Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015
  • 28. GII ­ Controller Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015
  • 29. GII ­ Controller Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015 index.php?r=users/create
  • 30. GII ­ Controller Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015 index.php?r=users/view
  • 31. GII ­ Vistas Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015 index.php?r=users/index
  • 32. GII ­ Controller Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015 delete
  • 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/ http://www.yiiframework.com/extension/yii2­widgets/
  • 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  curl ­sS https://getcomposer.org/installer | php
  • 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 php composer.phar require kartik­v/yii2­widget­datetimepicker "*"
  • 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 kartikdatetimeDateTimePicker; 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 Resultado final :D
  • 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 composer require 2amigos/yii2­ckeditor­widget:~1.0
  • 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 dosamigosckeditorCKEditor; 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á)
  • 40. Widget Install Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015 Resultado Final
  • 41. Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015 FIN