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 serverside 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 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 * 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/yii2widgets/ 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 kartikv/yii2widgetdatetimepicker "*" 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/yii2ckeditorwidget:~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