-->

jueves, 7 de junio de 2018

1.-YII 2 Framework PHP



¿Que es?

Es uno de los FrameWork para Php más poderosos y versátiles actualmente.
Yii 2 es un fantástico framework que permite crear aplicaciones web modernas y robustas.
 Al aprenderlo, estará convirtiéndose en un desarrollador mucho más valioso, y se verá beneficiado profesionalmente tanto si decide trabajar para una empresa como de manera independiente. Además, al aprender cómo trabajar con un framework MVC, será mucho más sencillo aprender a trabajar con otros también.

¿Para que usarlo?

 El uso de un framework libera al programador de muchas de las tareas repetitivas y que consumen gran cantidad de tiempo tales como: creación de formularios, validación de entrada del usuario, comunicación con una base de datos, entre otras. 

Algunos frameworks, incluso vienen con la capacidad de realizar scaffolding. El scaffolding se refiere a la habilidad de generar código de manera automática a partir de la información sobre la estructura de una tabla, permitiendo obtener la funcionalidad básica para realizar operaciones CRUD (Create, Read, Update, Delete) sobre la misma. 

En este aspecto, Yii 2 incluye una fantástica herramienta denominada Gii que permite generar modelos, controladores, y código CRUD completo a través de una interfaz visual muy completa e intuitiva. 

Pero Yii 2 aporta mucho más que eso. Yii 2 ofrece dos plantillas a partir de las que podemos crear nuestras aplicaciones: una plantilla básica y otra avanzada. En este curso trabajaremos con la plantilla avanzada debido a que presenta una serie de características extremadamente útiles para crear aplicaciones robustas.


Características 

Algunas de las características que la plantilla avanzada incluye son: 

  • Un esquema predefinido para la tabla de usuario 
  • Inicio de sesión de usuario y formularios de registro 
  • Funcionalidad de olvido de contraseña 
  • Dominios separados para frontend y backend 
  • Generación automática de código para modelos, controladores, y vistas 
  • Integración con Twitter Bootstrap y diseño para móviles 
  • Widgets robustos y helpers para presentación de datos 

Instalación de Yii 2.0

Como instalar paso a paso Yii Framework 2, en el momento de la instalación se encuentra en la versión 2.0.13, liberado el 3 de noviembre de 2017

  La documentación oficial para la 
instalación se encuentra en el siguiente enlace: http://www.yiiframework.com/download/

Herramientas sugeridas:
Composer: 
https://getcomposer.org/download/
Netbeans: 
https://netbeans.org/downloads/
Xampp: 
https://www.apachefriends.org/es/download.html 

Pasos:


0.- Instalar un entorno de desarrollo (ejemplo-. Netbeans) o un
editor de texto a fin, como sublime text.

1 - Instalar composer.phar. Abrir una consola e ir a la carpeta pública del servidor web, en el caso de XAMPP es ...
            cd c:\xampp\htdocs
En Wamp
cd c:\wamp64\www

Una vez dentro de la ruta ejecutar el siguiente comando:
            php -r "readfile('https://getcomposer.org/installer');" | php
 
2 - Instalar el plugin Composer Asset:
            php composer.phar global require "fxp/composer-asset-plugin:1.0.0-beta4"
ó
composer  global  require  "fxp/composer-asset-plugin:1.3.1”
 
3 - Instalar la aplicación esqueleto básica o avanzada de Yii Framework 2:

a) Básica:
php composer.phar create-project yiisoft/yii2-app-basic basic 2.0.2

b) Avanzada:  (Recomendada y con la que se trabajara)
php composer.phar create-project yiisoft/yii2-app-advanced advanced 2.0.2


4.-Recomendación
Copiar la carpeta con yii avanzado en el directorio www si es wamp o htdocs si es xamp  (Descargalo de aqui), esto es si no pudiste instalarlo. En la misma carpeta se encuentra el script sql para la base de datos "cursoyii2"

5.- Renombrar la carpeta con el nombre cursoyii2

6.- Ubicarse en la carpeta wamp64\www\cursoyii2 y ejecutar

php init

 cuando pregunte que entorno va a trabajar, seleccione “0” Development y luego teclee la letra "y" (de yes). 

Ver imagen




Esto creará los archivos de trabajo




7. Crear la base de datos.
Diríjase a Phpmyadmin. Vaya a la pestaña bases de datos, cree una bd llamada

cursoyii2, con cotejamiento utf8_unicode_ci.



8.- Establecer la conexión a la BD Ajuste el arreglo de componentes en

cursoyii2/common/config/main-local.php                  según corresponda.

Debería verse así:


Obviamente sustituya por su contraseña real en config. No olvide guardar los cambios.

9.- Ejecutar la migración para crear las tablas

Wamp64\www\cursoyii2\yii  migrate



Esto construirá las tablas necesarias en su base de datos. Puede revisar PhpMyadmin donde debería tener las siguientes tablas en cursoyii2:

migrations
user


10.-Servidor Virtual (Virtual Host)

Ahora configuraremos un servidor virtual en un SO Windows para la aplicación Yii instalada.

El objetivo es poder acceder a la aplicación a través de la siguiente url, 
http://yii.local, donde local debe ser tu proyecto

a) Iremos a la carpeta apache\conf\ en el caso de xampp a C:\xampp\apache\conf (windows: )y abriremos con un editor de código el archivo 
httpd.conf, nos dirigiremos al final del archivo e incluiremos lo siguiente:

NameVirtualHost *:80

<VirtualHost *:80>
DocumentRoot c:\xampp\htdocs
ServerName localhost
</VirtualHost>

<VirtualHost *:80>
DocumentRoot c:\xampp\htdocs\basic\web
ServerName yii.local
</VirtualHost>


¡¡¡Guardamos el archivo!!!

b) Configurar el archivo 
hosts de Windows que se encuentra en la siguiente ruta: C:\Windows\System32\drivers\etc

Abrir con un editor de código, e incluye después de la línea de localhost, la siguiente línea
 ...

127.0.0.1  cursoyii2.com


¡¡¡Guardamos el archivo!!!

  Ahora reinicia Apache y dirígete al nuevo nombre de dominio local para la aplicación Yii, 
http://cursoyii2.com



11.-Confirmar que la Aplicación está funcionando

Confirme que la aplicación avanzada funciona tipeando cursoyii2.com  y backend.cursoyii2.com en su navegador. Debería ver la plantilla de la aplicación avanzada que le permitirá registrar un usuario e iniciar sesión con ese usuario.
Debería registrar un usuario e ingresar para probar que la aplicación está funcionando.


Frontend





       Backend