Desarrollo web ágil
Introducción a Yii
http://www.yiiframework.com/
Por que PHP?
Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015
W3Techs, “Historical trends in the usage of serverside 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.
Por que Yii?
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)
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
Yii Instalación
Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015
sudo aptget install y php5 apache2 sqlite3 php5sqlite
echo
"Ingrese nombre del Sitio web (sin espacios):"
read webname
wget https://github.com/yiisoft/yii2/releases/download/2.0.6/yiibasicapp2.0.6.tgz
tar xzvf yiibasicapp2.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 *
Yii Instalación
Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015
CookieValidationKey'
Yii Instalación
Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015
Yii – Estructura
Ejemplo
Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015
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”
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”
Ejemplo
Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015
Configurar Yii con la Base de Datos
●
Copiamos la BDD SQLite a la carpeta “config/”
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
GII Controller
GII Controller
GII Controller
GII Controller
Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015
GII Controller
Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015
GII Vistas
Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015
GII Controller
Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015
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/
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
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
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á
)
Widget Install
Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015
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
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
])
?>
Widget Install
Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015
Por: Leonardo Bravo Illanes l30bravo@leobravo.cl 2015