Desarrollo web ágil Introducción a Yii

Transcripción

Desarrollo web ágil Introducción a Yii
Desarrollo web ágil
Introducción a Yii
http://www.yiiframework.com/
Por: Leonardo Bravo Illanes
[email protected]
2015
Por que PHP?
W3Techs, “Historical trends in the usage of server­side programming
languages for websites”.
Por: Leonardo Bravo Illanes
[email protected]
2015
Por que MVC?
●
●
Incrementa la reutilización de código, esto facilita la mantención y evolución del proyecto.
Agiliza el desarrollo.
Por: Leonardo Bravo Illanes
[email protected]
2015
Por que Yii?
Por: Leonardo Bravo Illanes
[email protected]
2015
Por que Yii?
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)
Por: Leonardo Bravo Illanes
[email protected]
2015
Yii ­ Instalación
Requisitos:
●
●
●
PHP5 o superior
Webservice (Apache u Otro)
Base de Datos (Sqlite3, MySQL, PostgreSQL)
Por: Leonardo Bravo Illanes
[email protected]
2015
Yii ­ Instalación
●
●
●
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
Por: Leonardo Bravo Illanes
[email protected]
2015
Yii ­ Instalación
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
Por: Leonardo Bravo Illanes
[email protected]
2015
Yii ­ Instalación
CookieValidationKey' Editar “config/web.php” y colocar una clave random para las Cookies
Por: Leonardo Bravo Illanes
[email protected]
2015
Yii ­ Instalación
Fin Instalación :)
Por: Leonardo Bravo Illanes
[email protected]
2015
Yii – Estructura Por: Leonardo Bravo Illanes
[email protected]
2015
Ejemplo
Sistema de Publicación e Inscripción de eventos:
Por: Leonardo Bravo Illanes
[email protected]
2015
Ejemplo
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)); Por: Leonardo Bravo Illanes
[email protected]
2015
Ejemplo
Configurar Yii con la Base de Datos
Editar el archivo “config/db.php”
MySQL
Por: Leonardo Bravo Illanes
[email protected]
2015
Ejemplo
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
Por: Leonardo Bravo Illanes
[email protected]
2015
Ejemplo
Configurar Yii con la Base de Datos
Editar el archivo “config/db.php”
Para el ejemplo usaremos sqlite
Por: Leonardo Bravo Illanes
[email protected]
2015
Ejemplo
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
Por: Leonardo Bravo Illanes
[email protected]
2015
GII
●
Ir a “index.php?r=gii”
Por: Leonardo Bravo Illanes
[email protected]
2015
Ejemplo
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)); Por: Leonardo Bravo Illanes
[email protected]
2015
GII ­ Model
Modelo Tabla Users
Por: Leonardo Bravo Illanes
[email protected]
2015
GII ­ Model
Modelo Tabla Users
Por: Leonardo Bravo Illanes
[email protected]
2015
GII ­ Model
Modelo Tabla Users
Por: Leonardo Bravo Illanes
[email protected]
2015
GII ­ Model
Modelo Tabla Users
Por: Leonardo Bravo Illanes
[email protected]
2015
GII ­ Model
Modelo Tabla Users
Por: Leonardo Bravo Illanes
[email protected]
2015
GII ­ Controller
Por: Leonardo Bravo Illanes
[email protected]
2015
GII ­ Controller
Por: Leonardo Bravo Illanes
[email protected]
2015
GII ­ Controller
Por: Leonardo Bravo Illanes
[email protected]
2015
GII ­ Controller
Por: Leonardo Bravo Illanes
[email protected]
2015
GII ­ Controller
index.php?r=users/create
Por: Leonardo Bravo Illanes
[email protected]
2015
GII ­ Controller
index.php?r=users/view
Por: Leonardo Bravo Illanes
[email protected]
2015
GII ­ Vistas
index.php?r=users/index
Por: Leonardo Bravo Illanes
[email protected]
2015
GII ­ Controller
delete
Por: Leonardo Bravo Illanes
[email protected]
2015
Widget Install
Composer es una herramienta para la gestión de la dependencia en PHP.
https://getcomposer.org/
http://www.yiiframework.com/extension/yii2­widgets/
Por: Leonardo Bravo Illanes
[email protected]
2015
Widget Install
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
Por: Leonardo Bravo Illanes
[email protected]
2015
Widget Install
Por ejemplo en Event – Create, añadiremos un widget para las fechas
Instalación Widget
php composer.phar require kartik­v/yii2­widget­datetimepicker "*"
Por: Leonardo Bravo Illanes
[email protected]
2015
Widget Install
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á)
Por: Leonardo Bravo Illanes
[email protected]
2015
Widget Install
Resultado final :D
Por: Leonardo Bravo Illanes
[email protected]
2015
Widget Install
Otro Ejemplo!!!! :)
Añadiremos un widget para las áreas de texto, llamado ckeditor
Instalación widget
composer require 2amigos/yii2­ckeditor­widget:~1.0
Por: Leonardo Bravo Illanes
[email protected]
2015
Widget Install
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
]) ?>
5)Git Proyecto (Acá)
Por: Leonardo Bravo Illanes
[email protected]
2015
Widget Install
Resultado Final
Por: Leonardo Bravo Illanes
[email protected]
2015
FIN
Por: Leonardo Bravo Illanes
[email protected]
2015

Documentos relacionados