-->
Mostrando entradas con la etiqueta Yii 2. Mostrar todas las entradas
Mostrando entradas con la etiqueta Yii 2. Mostrar todas las entradas

miércoles, 25 de marzo de 2020

3.-Requerimientos de PHP y Cambios en Yii2


Requerimientos de PHP
Yii 2.0 requiere PHP 5.4 o mayor, lo que es un gran progreso ya que Yii 1.1 funcionaba con PHP 5.2. Como resultado, hay muchas diferencias a nivel del lenguaje a las que deberías prestar atención. Abajo hay un resumen de los mayores cambios en relación a PHP:

  • Namespaces
  • Funciones anónimas
  • La sintaxis corta de Arrays [...elementos...] es utilizada en vez de array(...elementos...).
  • Etiquetas cortas de echo. Ahora en las vistas se usa <?=. Esto se puede utilizar desde PHP 5.4.
  • SPL - Biblioteca estándar de PHP.
  • Enlace estático en tiempo de ejecución.
  • Fecha y Hora,
  • Traits.
  • intl. Yii 2.0 utiliza la extensión intl de PHP como soporte para internacionalización.

Namespace

El cambio más obvio en Yii 2.0 es el uso de namespaces. Casi todas las clases del núcleo utilizan namespaces, ej., yii\web\Request. El prefijo “C” no se utiliza más en los nombre de clases. El esquema de nombres sigue la estructura de directorios. Por ejemplo, yii\web\Request indica que el archivo de la clase correspondiente web/Request.php está bajo el directorio de Yii framework.
(Puedes utilizar cualquier clase del núcleo sin necesidad de incluir el archivo que la contiene, gracias al autoloader de Yii.).

Componentes y Objetos

Yii2.0 parte la clase CComponent de1.1 en dos clases:yii\base\BaseObject y yii\base\Component. La clase BaseObject es una clase base que permite definir propiedades de object a través de getters y setters. La clase Component extiende de BaseObject y soporta eventos y comportamientos.
Si tu clase no necesita utilizar las características de eventos o comportamientos, puedes considerar usar BaseObject como clase base. Esto es frecuente en el caso de que las clases que representan sean estructuras de datos básicas.

Configuración de objetos

La clase BaseObject introduce una manera uniforme de configurar objetos. Cualquier clase descendiente de BaseObject debería declarar su constructor (si fuera necesario) de la siguiente manera para que puede ser adecuadamente configurado:

En el ejemplo de arriba, el ´ultimo parámetro del constructor debe tomar un array de configuración que contiene pares clave-valor para la inicialización de las propiedades al final del mismo. Puedes sobrescribir el método init() para realizar el trabajo de inicialización que debe ser hecho después de que la configuración haya sido aplicada.
Siguiendo esa convención, podrás crear y configurar nuevos objetos utilizando un array de configuración:










Eventos

En Yii1, los eventos eran creados definiendo un método on (ej.,onBeforeSave). En Yii 2, puedes utilizar cualquier nombre de evento. Ahora puedes disparar un evento utilizando el método trigger():

$event = new \yii\base\Event;
$component->trigger($eventName, $event);

Para conectar un manejador a un evento, utiliza el método on():

$component->on($eventName, $handler);

// Para desconectar el manejador, utiliza:
// $component->off($eventName, $handler);

Hay muchas mejoras en lo que respecta a eventos. 

Alias

Yii 2.0 extiende el uso de alias tanto para archivos/directorios como URLs. Yii 2.0 ahora requiere que cada alias comience con el carácter @, para diferenciarlos de rutas o URLs normales. Por ejemplo, el alias @yii corresponde al directorio donde Yii se encuentra instalado. Los alias están soportados en la mayor parte del n´ucleo. Por ejemplo, yii\caching\FileCache::$cachePath puede tomar tanto una ruta de directorios normal como un alias.
Un alias está estrechamente relacionado con un namespace de la clase.
Se recomienda definir un alias por cada namespace raíz, y así poder utilizar el autoloader de Yii sin otra configuración. Por ejemplo, debido a que @yii se refiere al directorio de instalación, una clase como yii\web\Request puede ser autocargada. Si estás utilizando una librería de terceros, como
Zend Framework, puedes definir un alias @Zend que se refiera al directorio de instalación de ese framework. Una vez realizado esto, Yii será capaz de autocargar cualquier clase de Zend Framework también.

Vistas




¡NO TE DESESPERES ES NECESARIO QUE CONOZCAS QUE SE PUEDE HACER CON YII2 PARA CUANDO LO NECESITES BUSCAS LA INFORMACIÓN RELACIONADA!!!!!!!         CONTINUAMOS...   :)

Modelos

Yii 2.0 utiliza yii\base\Model como modelo base, algo similar a CModel en 1.1. La clase CFormModel ha sido descartada por completo. Ahora, en Yii 2 debes extender de yii\base\Model para crear clases de modelos basados en formularios.
Yii 2.0 introduce un nuevo método llamado scenarios() para declarar escenarios soportados, y para indicar bajo que escenario un atributo necesita ser validado, puede ser considerado seguro o no, etc. Por ejemplo:









En el ejemplo anterior, se declaran dos escenarios: backend y frontend. Para el escenario backend son considerados seguros ambos atributos, email y role, y pueden ser asignados masivamente. Para el escenario frontend, email puede ser asignado masivamente mientras role no. Tanto email como role deben ser validados utilizando reglas (rules).
El método rules() aún es utilizado para declara reglas de validación.
Ten en cuenta que dada la introducción de scenarios(), ya no existe el validador unsafe.
En la mayoría de los casos, no necesitas sobrescribir scenarios() si el método rules() especifica completamente los escenarios que existirán, y si no hay necesidad de declarar atributos inseguros (unsafe).

Controladores

Yii 2.0 utiliza yii\web\Controller como controlador base, similar a CWebController en Yii 1.1. yii\base\Action es la clase base para clases de acciones.
El impacto más obvio de estos cambios en tu código es que que cada acción del controlador debe devolver el contenido que quieres mostrar en vez de mostrarlo directamente:

Widgets

Yii 2.0 utiliza yii\base\Widget como clase base de los widgets, similar a CWidget en Yii 1.1.
Para obtener mejor soporte del framework en IDEs, Yii 2.0 introduce una nueva sintaxis para utilizar widgets. Los métodos estáticos begin(), end(), y widget() fueron incorporados, y deben utilizarse así:











Temas

Los temas funcionan completamente diferente en Yii 2.0. Ahora están basados en un mecanismo de mapeo de rutas, que mapea la ruta de un archivo de la vista de origen a uno con un tema aplicado. Por ejemplo, si el mapeo de ruta de un tema es [’/web/views’ => ’/web/themes/basic’], entonces la versión con el tema aplicado del archivo /web/views/site/index.php sería /web/themes/basic/site/index.php. Por esta razón, ahora los temas pueden ser aplicados a cualquier archivo de la vista, incluso una vista renderizada fuera del contexto de un controlador o widget.
Ademas, el componente CThemeManager ya no existe. En cambio, theme es una propiedad configurable del componente view de la aplicación.

Filtros de Acciones

Los filtros de acciones son implementados a través de comportamientos.
Para definir un nuevo filtro personalizado, se debe extender de yii\base\ActionFilter. Para utilizar el filtro, conecta la clase del filtro al controlador como un comportamiento. Por ejemplo, para utilizar el filtro yii\filters\AccessControl, deberías tener el siguiente código en el controlador:



Assets

Yii 2.0 introduce un nuevo concepto llamado asset bundle que reemplaza el concepto de script package encontrado en Yii 1.1.
Un asset bundle es una colección de archivos assets (ej. archivos JavaScript, archivos CSS, imágenes, etc.) dentro de un directorio. Cada asset bundle está representado por una clase que extiende de yii\web\AssetBundle. Al registrar un asset bundle a través de yii\web\AssetBundle::register(), haces que los assets de dicho bundle sean accesibles vía Web. A diferencia de Yii 1, la página que registra el bundle contendrá automáticamente las referencias a los archivos JavaScript y CSS especificados en el bundle.

Helpers

Yii 2.0 introduce muchos helpers estáticos comúnmente utilizados, incluyendo:

yii\helpers\Html
yii\helpers\ArrayHelper
yii\helpers\StringHelper
yii\helpers\FileHelper
yii\helpers\Json

Formularios

Yii 2.0 introduce el concepto de campo (field) para construir formularios utilizando yii\widgets\ActiveForm. Un campo es un contenedor que consiste en una etiqueta, un input, un mensaje de error y/o texto de ayuda.
Un campo es representado como un objeto ActiveField. Utilizando estos campos, puedes crear formularios máas legibles que antes:


Constructor de Consultas

En Yii 1.1, la generaci´on de consultas a la base de datos estaba dividida
en varias clases, incluyendo CDbCommand, CDbCriteria, y CDbCommandBuilder. Yii
2.0 representa una consulta a la base de datos en t´erminos de un objeto Query que puede ser convertido en una declaraci´on SQL con la ayuda de QueryBuilder detr´as de la escena. Por ejemplo:


Lo mejor de todo, dichos métodos de generación de consultas pueden ser también utilizados mientras se trabaja con Active Record.

Active Record (ESTE ES MANEJADOR DE LA BD)

Yii 2.0 introduce muchísimos cambios con respecto a Active Record. Los dos más obvios se relacionan a la generación de consultas y al manejo de relaciones.
La clase de Yii 1.1 CDbCriteria es reemplazada por yii\db\ActiveQuery en Yii 2. Esta clase extiende de yii\db\Query, y por lo tanto hereda todos los métodos de generación de consultas. Para comenzar a generar una consulta, llamas al método yii\db\ActiveRecord::find():











Para declarar una relación, simplemente define un método getter que devuelva un objeto ActiveQuery. El nombre de la propiedad definida en el getter representa el nombre de la relación. Por ejemplo, el siguiente código declara una relación orders (en Yii 1.1, las relaciones se declaraban centralmente en el método relations()):


Ahora puedes utilizar $customer->orders para acceder a las ´ordenes de la tabla relacionada. También puedes utilizar el siguiente código para realizar una consulta relacional ‘sobre la marcha’ con una condición personalizada:

$orders = $customer->getOrders()->andWhere(’status=1’)->all();

Cuando se utiliza la carga temprana (eager loading) de la relación, Yii 2.0 lo hace diferente de 1.1. En particular, en 1.1 una declaración JOIN sería creada para seleccionar tanto los registros de la tabla primaria como los relacionados. En Yii 2.0, dos declaraciones SQL son ejecutadas sin utilizar un JOIN: la primera trae todos los modelos primarios, mientras que la segunda trae los registros relacionados utilizando como condición la clave primaria de los primarios.
En vez de devolver objetos ActiveRecord, puedes conectar el método asArray() mientras generas una consulta que devuelve un gran número de registros. Esto causará que el resultado de la consulta sea devuelto como arrays, lo que puede reducir significativamente la necesidad de tiempo de CPU y memoria si el número de registros es grande. Por ejemplo:

$customers = Customer::find()->asArray()->all();

Otro cambio es que ya no puedes definir valores por defecto a los atributos a través de propiedades públicas. Si lo necesitaras, debes definirlo en el método init de la clase del registro en cuestión.








Anteriormente, sol´ıa haber algunos problemas al sobrescribir el constructor de una clase ActiveRecord en 1.1. Estos ya no están presentes en Yii 2.0. Ten en cuenta que al agregar parámetros al constructor podrías llegar a tener que sobrescribir yii\db\ActiveRecord::instantiate().
Hay muchos otros cambios y mejoras con respecto a ActiveRecord

Active Record Behaviors

En 2.0, hemos eliminado la clase del comportamiento base CActiveRecordBehavior . Si desea crear un comportamiento Active Record, usted tendrá que extender directamente de yii\base\Behavior. Si la clase de comportamiento debe responder a algunos eventos propios, usted tiene que sobrescribir los métodos events() como se muestra a continuación,



 User e IdentityInterface

La clase CWebUser de 1.1 es reemplazada por yii\web\User, y la clase CUserIdentity ha dejado de existir. En cambio, ahora debes implementar yii\web\IdentityInterface el cual es mucho más directo de usar. El template de proyecto avanzado provee un ejemplo así.


 Manejo de URLs

El manejo de URLs en Yii 2 es similar al de 1.1. Una mejora mayor es que el manejador actual ahora soporta parámetros opcionales. Por ejemplo, si tienes una regla declarada como a continuación, entonces coincidir´a tanto con post/popular como con post/1/popular. En 1.1, tendrías que haber creado dos reglas diferentes para obtener el mismo resultado

[
’pattern’ => ’post/<page:\d+>/<tag>’,
’route’ => ’post/index’,
’defaults’ => [’page’ => 1],
]

Un cambio importante en la convención de nombres para rutas es que los nombres en CamelCase de controladores y acciones ahora son convertidos a minúsculas y cada palabra separada por un guión, por ejemplo el id del controlador CamelCaseController será camel-case.


Uffffff ya en el siguiente post a empezar con el lenguaje yii2 :)

Tomado de la Guía Definitiva de Yii 2.0
Quiang Xue, Alexander Makarov, Carsten Brandt, Klimov Paul y Toda la comunidad de Yii2

martes, 24 de marzo de 2020

2.-Corriendo la Aplicación creada en Yii2



Después de haber instalado Yii, tienes una aplicación totalmente funcional a la que se puede acceder a través de la URL http://hostname/avanzada/web/index.php o http://hostname/index.php, dependiendo de tu configuración. Esta sección será una introducción a la funcionalidad incluida de la aplicación, cómo se organiza el código, y cómo la aplicación maneja los requests en general.
La versión instalada en tu caso es la avanzada.


Funcionalidad

La aplicación básica contiene 4 páginas:
  • página principal, mostrada cuando se accede a la URL http://hostname/index.php,
  • página "Acerca de (About)",
  • la página "Contacto (Contact)", que muestra un formulario de contacto que permite a los usuarios finales contactarse vía email,
  • y la página "Login", que muestra un formulario para loguearse que puede usarse para autenticar usuarios. Intenta loguearte con "admin/admin", y verás que el elemento "Login" del menú principal cambiará a "Logout".
Estas páginas comparten un encabezado y un pie. El encabezado contiene una barra con el menú principal que permite la navegación entre las diferentes páginas.
También deberías ver una barra en la parte inferior de la ventana del navegador. Esta es la útil herramienta de depuración provista por Yii para registrar y mostrar mucha información de depuración, tal como los mensajes de log, response status, las consultas ejecutadas a la base de datos, y más.
Adicionalmente a la aplicación web, hay un script de consola llamado yii, localizado en el directorio base de la aplicación. El script puede ser utilizado para ejecutar tareas de fondo y tareas de mantenimiento de la aplicación, las cuales son descritas en la Sección de Aplicación de Consola.

Estructura de la aplicación

Los archivos y directorios más importantes en tu aplicación son (asumiendo que la raíz de la aplicación es basic): tu tienes la avanzada y por lo tanto hay más elementos en la estructura
basic/                  base path de la aplicación
    composer.json       archivo utilizado por Composer, describe información de sus paquetes y librerías
    config/             contiene la configuración de las aplicaciones (y otras)
        console.php     configuración de la aplicación de consola
        web.php         configuración de la aplicación web
    commands/           contiene las clases de comandos de consola
    controllers/        contiene las clases de los controladores
    models/             contienes las clases del modelo
    runtime/            contiene archivos generados por Yii en tiempo de ejecución, como archivos de log y cache
    vendor/             contiene los paquetes y librerías instalados por Composer, incluyendo el propio núcleo de Yii
    views/              contiene los archivos de vistas (templates)
    web/                raíz web de la aplicación, contiene los archivos accesibles vía Web
        assets/         contiene los assets publicados (javascript y css) por Yii
        index.php       el script de entrada (o bootstrap) de la aplicación
    yii                 el script de ejecución de los comandos de consola de Yii
Yii implementa el patrón de diseño modelo-vista-controlador (MVC), que es reflejado en la estructura de directorios utilizada. El directorio models contiene todas las clases del modelo, el directorio views contiene todas las vistas (templates), y el directorio controllers contiene todas las clases de controladores.
El siguiente diagrama muestra la estructura estática de una aplicación.
Estructura Estática de una Aplicación
Cada aplicación tiene un script de entrada web/index.php que es el único script PHP accesible vía web. El script de entrada toma una petición (request) entrante y crea una instancia de una aplicación para manejarlo. La aplicación resuelve la petición (request) con la ayuda de sus componentes, y la envía al resto de los elementos MVC. Los widgets son usados en las vistas para ayudar a construir elementos de interfaz complejos y dinámicos.

Ciclo de Vida de una Petición (Request)

El siguiente diagrama muestra cómo una aplicación maneja una petición.
Ciclo de Vida de un Request
  1. Un usuario realiza una petición al script de entrada web/index.php.
  2. El script de entrada carga la configuración de la aplicación y crea una instancia de la aplicación para manejar la consulta.
  3. La aplicación resuelve la ruta solicitada con la ayuda del componente request de la aplicación.
  4. La aplicación crea una instancia de un controlador para manejar la petición.
  5. El controlador crea una instancia de una acción y ejecuta los filtros de dicha acción.
  6. Si alguno de los filtros falla, la acción es cancelada.
  7. Si todos los filtros pasan, la acción es ejecutada.
  8. La acción carga datos del modelo, posiblemente de la base de datos.
  9. La acción renderiza una vista, pasándole los datos del modelo cargado.
  10. El resultado de la renderización es pasado al componente response de la aplicación.
  11. El componente response envía el resultado de la renderización al navegador del usuario.
Eso es todo con respecto al funcionamiento y estructura de una Aplicación Yii2 con la plantilla avanzada.

Si todos estos elementos son un poco confusos al inicio no te preocupes conforme vayas avanzando se te harán más familiares y empezaras con las expresiones ahhhh era eso , ahhh ya entendí ó ahhhhhh ok ok

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





viernes, 28 de julio de 2017

0.-Comparación entre laravel y yii 2.0


Hay muchos frameworks PHP completos que pueden ser utilizados con el propósito de desarrollar proyectos masivos sin grandes retrasos en el rendimiento y problemas de estabilidad. Entre ellos Laravel, y Yii ha sido frameworks ampliamente utilizados hoy. La mayoría de los desarrolladores se sentirán a gusto para trabajar con Laravel y Yii cuando crean algo nuevo, para ambos marcos tienen un montón de seguidores en términos de comunidades completas en todo el mundo. En este extracto, podemos analizar el funcionamiento de ambas plataformas en el punto de vista del programador.
Laravel

Laravel está diseñado para el propósito de construir aplicaciones web de gama alta con un poderoso y elite de secuencias de comandos. Los puntos fuertes de Laravel se encuentran en el enrutamiento, almacenamiento en caché y autenticación. Se compone de herramientas superiores que se pueden utilizar para la creación de aplicaciones web masivas, estables y potentes. El sistema de migración, Inversión de control, y la prueba de módulo embebido en Laravel es más que excepcional.

Yii2

El framework Yii es utilizado por los programadores para la creación de RESTful API(Conjunto de directrices para la mejora de comunicación cliente-servidor), portales web, foros, y mucho más. Yii sigue la codificación simple y el funcionamiento rápido. Yii tiene un elegante Query Builder (Generador de consultas) y diversas caché que son muy útiles para la programación. En términos de escalabilidad, la velocidad y el desarrollo de extensiones personalizadas Yii como un marco demuestra ser muy eficaz.

Laravel vs Yii2

Tanto Laravel como Yii están diseñados en arquitectura MVC (Modelo-Vista-Controlador) con múltiples números de extensiones. Estos frameworks necesitan PHP 5.4 o versiones superiores para un funcionamiento correcto. Ambos marcos funcionan con un ORM que tiene DAO, Active Record Pattern y Doctrine 2 a través de plugins. El ORM de Laravel es elocuente y Yii es activo.

Extensiones

Si comparamos las extensiones ofrecidas por Yii2 y laravel, ambas son de primera categoría. Un programador puede encontrar valiosos tipos de extensiones en ambos marcos. Las extensiones ofrecidas por estos marcos lo hacen más funcional y útil tanto para principiantes como para programadores expertos.

Migraciones

Las  seeders (tener completo) se pueden incluir en la plataforma de Laravel, y ésas ayudan a programadores a hacer migraciones de una manera mucho más rápida y fácil. Dicho esto, Yii 2 también proporciona a los programadores herramientas de migración fantásticas. Estas herramientas permiten a los programadores lograr excelentes pruebas de datos. En el momento de la prueba de datos y el llenado de direcciones estáticas Laravel está un poco avanzado en comparación con Yii.

Seguridad

El desarrollo web en Yii2 es más seguro que el desarrollo web Laravel. Laravel no incluye herramientas de seguridad hasta el punto que encontramos en Yii. No indica que Laravel sea peor en términos de seguridad. De todas maneras, ambas plataformas proporcionan a los desarrolladores inyecciones de SQL, CSRF y funciones de autenticación sólidas.

Validación de formularios

Yii2 y Laravel abarcan opciones de validación de formulario que funcionan de una manera diferente. Laravel está muy por delante de Yii2 en este aspecto. Contiene un validador de formulario que se mantiene como una clase de soporte diferente. Los programadores pueden validar un dato sin tener en cuenta la hora y el lugar. La gran ventaja de la validación de la forma de Laravel es que los programadores pueden extenderla según sus propios métodos. La validación de formularios en Yii es un poco diferente y está acoplada a una clase o modelo. En Yii los desarrolladores pueden establecer sus reglas y verificar validaciones de formulario en consecuencia. Aquí se necesita desarrollar una clase específica o los programadores deben utilizar los scripts de validación. No es una cosa difícil de lograr en Yii, pero la validación de la forma de Laravel es simplemente excelente y super fácil.

Conclusión

Laravel carece de una documentación detallada como la ofrecida por Yii. Los programadores no encontrarán muchas descripciones detalladas en Laravel. Los programadores deben ser utilizados para la codificación de Laravel para evitar fallas. Yii tiene documentación detallada y los desarrolladores no tienen que depender de los códigos fuente todo el tiempo, a diferencia de Laravel. Yii2 ofrece un rendimiento rápido y Laravel viene con funciones cargadas. Como que ambos marcos tienen sus propios méritos y deméritos. Para ponerlo en palabras simples, tanto Laravel como Yii2 son excelentes marcos y es casi imposible escoger un verdadero ganador.

!EMPATEEEEEEEEEE! aunque la preferencia lo indica la experiencia y dominio en cada framework

Tomado de la Deepweb By

viernes, 23 de septiembre de 2016

00.- FRAMEWORK, ¿Que es?, Características y ventajas

   
 Un Framework es un entorno o ambiente de trabajo para desarrollo; dependiendo del lenguaje normalmente integra componentes que facilitan el desarrollo de aplicaciones como el soporte de programa, bibliotecas, plantillas y más.
    Lo más importante de todo este entorno de trabajo es que contiene máquinas virtuales, compiladores, bibliotecas de administración de recursos en tiempo de ejecución y especificaciones de lenguajes, haciendo nuestro trabajo más eficiente y recursivo.
   La arquitectura más utilizada en casi todos los frameworks es conocida como MVC (Controlador, Modelo, Vista),  esta arquitectura divide el desarrollo en tres grandes partes:
  • Modelo: Son los datos de la aplicación y su reglamentación.
  • Vista: Es la presentación de los datos.
  • Controlador: Procesa las peticiones de los usuarios y controla el flujo de ejecución del sistema.

Características de los Frameworks

Casi todos los frameworks comparten las mismas características de acuerdo a su tipo, entre las que podemos destacar están:
  • La Autenticación mediante login y password que permite restringir el acceso y el tipo de permiso.
  • El Acceso a los datos en archivos txt, xml por ejemplo mediante interfaces que integran la base de datos.
  • Abstracción de URLs y Sesiones ya que el framework se encarga de manejarlas.
  • Internacionalización que permite la inclusión de varios idiomas en el desarrollo.
  • Controladores fácilmente adaptables a las necesidades del proyecto que gestionan las peticiones y/o eventos.

¿Cuantos frameworks existen?

Existen muchos Framework por eso más que difícil es casi imposible cuantificarlos y su uso va de acuerdo a las necesidades de cada proyecto y al gusto del freelance y/o desarrollador; algunos de ellos pueden ser:
  •  .NET: El Framework de Microsoft.
  • Ruby on Rails (RoR): es el Framework  de aplicaciones web de código abierto de un lenguaje de programación llamado Ruby.
  • Genesis: Framework para WordPress
  • Zengrid: Framework para Joomla
  • PhoneGap: Permite crear aplicaciones móviles multiplataforma a partir de tecnologías web como HTML5, CSS3 y Javascript.
  • JQuery Mobile: basado en HTML5 optimizado para todas las plataformas de dispositivos móviles.
  • Titaniun: Framework Open Source con licencia Apache, genera aplicaciones nativas para iPhone, Android y Blackberry.
La lista se haría interminable por tal motivo opinar sobre cuál es el mejor framework para desarrollar es verdaderamente inútil ya que los encuentras incluso tanto para desarrolladores expertos como para principiantes.

Ventajas más comunes

Como programador se destaca principalmente la facilidad en el desarrollo como la mayor ventaja de los framework, otras ventajas relevantes de su uso son:
  • Compatibilidad de Lenguajes
  • Transparencia de proyectos de plataforma a plataforma
  • Portabilidad de Arquitectura
  • Integración con múltiples dispositivos.
  • Desarrollo de aplicaciones de manera más sencilla, ya que cuenta con los componentes necesarios incluidos.
  • Reutilización de Código
  • Maneja Política de diseño uniforme y organizado.
Cuando eres freelance entiendes la importancia de estas ventajas en su utilización para ser más recursivos.
Elegir un frameworks va de acuerdo a la necesidad del proyecto a desarrollar así como también la decisión de no usarlos, consideración que valdría la pena reevaluar si tenemos en cuenta que el desarrollo con framework es menos propenso a sufrir errores. Lo que sí se puede decir es que hoy día la utilización de frameworks es casi del 100% porque permite a los desarrolladores freelance y/o autónomos ser más productivos, es decir más proyectos, mas ingresos y menos tiempo de trabajo.