Desarrollo web ágil Introducción a Yii http://www.yiiframework.com/
Por que PHP? W3Techs, Historical trends in the usage of server side programming languages for websites.
Por que MVC? Incrementa la reutilización de código, esto facilita la mantención y evolución del proyecto. Agiliza el desarrollo.
Por que Yii?
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)
Yii Instalación Requisitos: PHP5 o superior Webservice (Apache u Otro) Base de Datos (Sqlite3, MySQL, PostgreSQL)
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
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
Yii Instalación CookieValidationKey' Editar config/web.php y colocar una clave random para las Cookies
Yii Instalación Fin Instalación :)
Yii Estructura
Ejemplo Sistema de Publicación e Inscripción de eventos:
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));
Ejemplo Configurar Yii con la Base de Datos Editar el archivo config/db.php MySQL
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
Ejemplo Configurar Yii con la Base de Datos Editar el archivo config/db.php Para el ejemplo usaremos sqlite
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
GII Ir a index.php?r=gii
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));
GII Model Modelo Tabla Users
GII Model Modelo Tabla Users
GII Model Modelo Tabla Users
GII Model Modelo Tabla Users
GII Model Modelo Tabla Users
GII Controller
GII Controller
GII Controller
GII Controller
GII Controller index.php?r=users/create
GII Controller index.php?r=users/view
GII Vistas index.php?r=users/index
GII Controller delete
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/
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
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 "*"
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á)
Widget Install Resultado final :D
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
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á)
Widget Install Resultado Final
FIN