LARAVEL
Es un framework de código abierto
para desarrollar aplicaciones y servicios web con PHP 5 y PHP 7. Su filosofía
es desarrollar código PHP de forma elegante y simple, evitando el "código
espagueti". Fue creado en 2011 y tiene una gran influencia de frameworks
como Ruby on Rails, Sinatra y ASP.NET MVC.
VISIÓN GENERAL
Laravel
tiene como objetivo ser un framework que permita el uso de una sintaxis
elegante y expresiva para crear código de forma sencilla y permitiendo multitud
de funcionalidades. Intenta aprovechar lo mejor de otros frameworks y
aprovechar las características de las últimas versiones de PHP.
Gran
parte de Laravel está formado por dependencias, especialmente de Symfony, esto
implica que el desarrollo de Laravel dependa también del desarrollo de sus
dependencias.
CARACTERÍSTICAS
- Sistema de ruteo, también RESTful
- Blade, Motor de plantillas
- Eloquent OR
- Basado en Composer
- Soporte para el caché
- Soporte para MVC
- Usa componentes de Symfony
- Adopta las especificaciones PSR-212 y PS
PATRON MVC
Modelo
Laravel
incluye un sistema de mapeo de datos relacional llamado Eloquent ORM que
facilita la creación de modelos. Este ORM se funda en patrón active record y su
funcionamiento es muy sencillo. Es opcional el uso de Eloquent, pues también
dispone de otros recursos que nos facilitan interactuar con los datos, o
específicamente la creación de modelos.
Vista
Laravel
incluye de paquete un sistema de procesamiento de plantillas llamado Blade.
Este sistema de plantillas favorece un código mucho más limpio en las Vistas,
además de incluir un sistema de Caché que lo hace mucho más rápido. El sistema
Blade de Laravel, permite una sintaxis mucho más reducida en su escritura.
Plantillas
Las
plantillas en Blade son archivos de texto plano que contiene todo el HTML de la
página con etiquetas que representan elementos o zonas a incluir en la
plantilla, o vistas parciales como se conocen en otros frameworks PHP. Sin
embargo, en Blade estos elementos incrustados se organizan en un sólo archivo.
Esta es una idea muy interesante de Laravel que mejora la organización de las
vistas y su rendimiento.
Sobre todo cuando las vistas pueden llegar a
ser muy complejas incluso con elementos anidados. En el render de una Vista
completa en Laravel se usan dos archivos: la plantilla definiendo el HTML
global y las zonas a incluir. Un sólo archivo, la Vista, con los elementos
(partial views).
Controlador
Los
controladores contienen la lógica de la aplicación y permiten organizar el
código en clases sin tener que escribirlo todo en las rutas. Todos los
controladores deben extenderse de la clase BaseController.además de eso.
Influencia
La
influencia de Laravel ha crecido rápidamente desde su lanzamiento. En la
comunidad de desarrolladores es considerado como alternativa sencilla de usar
pero que tiene todas las funcionalidades que debe tener un framework. Ha sido
descargado más de 320.000 veces, y se espera que supere en popularidad a otros
frameworks ya establecidos más antiguos.
Uso
Y
para que laravel se desarrolle dicha aplicación requiere de programación a
medida para desarrollar sus funcionalidades. Vamos a intentar exponer algunos
ejemplos de posibles aplicaciones de Laravel.
Las
posibles aplicaciones son todas las aplicaciones desarrolladas en PHP, por
ejemplo, áreas cliente , intranets, aplicaciones web con funcionalidades
concretas, APIS, y prácticamente cualquier funcionalidad web requiera
programación a medida.
CODEIGNITER
Es
un framework para aplicaciones web de código abierto para crear sitios web
dinámicos con PHP. Su objetivo es permitir que los desarrolladores puedan
realizar proyectos mucho más rápido que creando toda la estructura desde cero,
brindando un conjunto de bibliotecas para tareas comunes, así como una interfaz
simple y una estructura lógica para acceder esas bibliotecas.
También hay que destacar que CodeIgniter es más rápido que muchos otros entornos. Incluso en una discusión sobre entornos de desarrollo con PHP, Rasmus Lerdorf, el creador de PHP, expresó que le gustaba CodeIgniter porque es rápido, ligero y parece poco un entorno.
También hay que destacar que CodeIgniter es más rápido que muchos otros entornos. Incluso en una discusión sobre entornos de desarrollo con PHP, Rasmus Lerdorf, el creador de PHP, expresó que le gustaba CodeIgniter porque es rápido, ligero y parece poco un entorno.
Kohana
ha creado una rama a partir de CodeIgniter 1.5.4 en 2007, como resultado del
disgusto de la comunidad por la falta de corrección de errores y el deseo de
incorporar otras características demandadas por los usuarios.
El
día 1 de Marzo se publica la primera beta de la versión 4 de Codeigniter. Hasta
la fecha la más actual en producción es la versión 3.1.10 que se puede
descargar desde CodeIgniter.
CARACTERISTICAS:
Framework
muy liviano: CodeIgniter 3 ocupa tan sólo 2MB, incluyendo la guía del usuario.
Soluciones
simples sobre la complejidad: CodeIgniter
anima a MVC, pero no lo obliga a usted.
Documentation
sencilla: La Guía del usuario CodeIgniter viene con la descarga. Contiene una
introducción, un tutorial, una serie de guías de "cómo" y, a
continuación, documentación de referencia para los componentes que conforman el
framework.
Rendimiento
excepcional: CodeIgniter siempre supera a la mayoría de sus competidores.
Gran
Seguridad: Tomamos la seguridad en serio, con protección incorporada contra
ataques CSRF y XSS.
Cerca
de cero configuración: Gran parte de la configuración de CodeIgniter se realiza
por convención, por ejemplo poner modelos en una carpeta de
"modelos". Todavía hay varias opciones de configuración disponibles,
a través de scripts en la carpeta "config".
FUNCIONALIDAD
CodeIgniter
es el segundo framework más popular entre los desarrolladores de PHP. Es muy
potente y destaca por su velocidad, además de su sencillez y facilidad de ser
aprendido, por lo que resulta ideal para iniciar cualquier proyecto.
Codeigniter
es un framework para el desarrollo de aplicaciones en php que utiliza el MVC.
Permite a los programadores Web mejorar la forma de trabajar y hacerlo a mayor
velocidad. Al igual que cualquier framework está pensado para gente que tiene
un dominio, al menos medio, del lenguaje de programación PHP. Siempre hay que
controlar PHP “a pelo” para empezar a trabajar de forma eficiente con este
framework (o cualquier otro).
MODELO
El modelo es el encargado
del acceso a datos. Para este ejemplo he creado una base de datos en MySQL, con
una sola tabla llamada “Usuarios”, de manera que pueda acceder a ella y mostrar
su contenido en la vista.
CONFIGURACIÓN DEL ACCESO A BBDD
La
configuración de la base de datos se encuentra en el fichero
application>config>database.php, donde debes modificar algunos
parámetros, como el nombre de la base de datos, el usuario y la contraseña.
ACCESO A DATOS
A
continuación, crea una clase model que extienda de CI_Model en
application>models. Para este ejemplo solo necesitarás una función que
seleccione todo el contenido de la tabla “Usuarios”.
CodeIgniter
establece la conexión con la base de datos por ti, y solamente tienes que
indicarle a la variable “db” el método que necesites y el nombre de la tabla a
la que quieras acceder.
Una
vez obtengas el resultado de tu query, utiliza la función result_array() para
transformarlo en un array y hacerlo más manejable. Tu función debe devolver
dicho array para que pueda ser recogida por el controlador.
El
logotipo está bajo una licencia Creative Commons Atribución-No Derivative Works
3.0 Unported.
YII
Es
un framework de desarrollo de aplicaciones libres para la web, de código
abierto, que promueve el diseño limpio y motiva el desarrollo rápido. Ayuda a
garantizar un producto final eficiente, extensible y mantenible, cuenta con características como el desarrollo rápido, el
almacenamiento en caché, autenticación y control de acceso basado en roles,
andamios, pruebas, etc.
Yii
es un framework PHP basado en componentes de alta performance para desarrollar
aplicaciones Web de gran escala. El mismo permite la máxima reutilización en la
programación web y puede acelerar el proceso de desarrollo. El nombre Yii
(pronunciado /i:/) es por fácil.
Características
- Patrón de diseño Modelo Vista Controlador (MVC).
- Database Access Objects (DAO), query builder, Active Record y migración de base de datos.
- Integración con jQuery.
- Entradas de Formulario y validación.
- Widgets de Ajax, como autocompletado de campos de texto y demás.
- Soporte de Autenticación incorporado. Además soporta autorización vía role-based access control (RBAC) jerárquico.
- Personalización de aspectos y temas.
- Generación compleja automática de WSDL, especificaciones y administración de peticiones Web service.
- Internacionalización y localización (I18N and L10N). Soporta traducciones, formato de fecha y hora, formato de números, y localización de la vista.
- Esquema de caching por capas. Soporta el cache de datos, cache de páginas, cache por fragmentos y contenido dinámico. El medio de almacenamiento del cache puede ser cambiado.
- El manejo de errores y logging. Los errores son manejados y personalizados, y los log de mensajes pueden ser categorizados, filtrados y movidos a diferentes destinos.
- Las medidas de seguridad incluyen la prevención cross-site scripting (XSS), prevención cross-site request forgery (CSRF), prevención de la manipulación de cookies, etc.
- Herramientas para pruebas unitarias y funcionales basados en PHPUnit y Selenium.
- Generación automática de código para el esqueleto de la aplicación, aplicaciones CRUD, etc.
- Generación de código por componentes de Yii y la herramienta por línea de comandos cumple con los estándares de XHTML.
- Cuidadosamente diseñado para trabajar bien con código de terceros. Por ejemplo, es posible usar el código de PHP o Zend Framework en una aplicación Yii.
Extensiones
El
proyecto Yii tiene un repositorio de extensiones que consisten en componentes
contribuidos por usuarios.
También
hay una biblioteca de extensiones oficial llamada zii, la cual la han unido
junto al núcleo del framework. Esta es incluida en cada lanzamiento desde la
versión 1.1.0 Yii e incluye comportamientos adicionales y widgets, tales como
las redes y los widgets jQuery UI.
Documentación
Yii
viene con una colección de documentos oficiales, tales como un tutorial para
desarrollar un simple blog, una guía que recoge la descripción de cada función
y una referencia de clases que ofrece todos los detalles acerca de las
propiedades, métodos y eventos.
También
hay una documentación aportadas por los usuarios, la mayoría de los cuales está
disponible en el wiki en la página web oficial.
Licencia
Yii
es liberado bajo la Nueva Licencia BSD (Cláusula 3 de la licencia). Esto
significa que es posible utilizar de forma gratuita para desarrollar cualquier
aplicación web de código abierto o software privativo.
El
texto que figura en la documentación oficial de Yii tiene licencia para el
público bajo la GNU Free Documentation License (GFDL). En general, el contenido
de la documentación Yii puede ser copiado, modificado y redistribuido siempre y
cuando la nueva versión de subvenciones de las mismas libertades a los demás y
reconozca a los autores del artículo de la documentación utilizada Yii.
CAKEPHP
Este
framework es muy popular entre los desarrolladores de PHP por su peso ligero,
simplicidad, rapidez y requiere menos código, por lo que es muy fácil de
aprender. La característica CRUD integrado es muy útil para la interacción de
base de datos, también tiene varias funciones integradas para la seguridad, el
correo electrónico, la sesión, la galleta y la administración de solicitudes.
Con
CakePHP el desarrollo web ya no es monótono porque ofrecemos las herramientas
para que empieces a escribir el código que realmente necesitas: la lógica
específica de tu aplicación. Consigue una copia de CakePHP, empieza con lo
verdaderamente importante y no reinventes la rueda cada vez que te incorpores a
un nuevo proyecto. CakePHP tiene un equipo de desarrolladores y una comunidad
activos, lo que añade valor al proyecto. Con CakePHP, además de no tener que
reinventar la rueda, el núcleo de tu aplicación se mejora constantemente y está
bien probado.
CARACTERISTICAS
CakePHP
es un framework o marco de trabajo que "facilita" el desarrollo de
aplicaciones web, utilizando el patrón de diseño MVC (Modelo Vista
Controlador). Es de código abierto y se distribuye bajo licencia MIT.
Al
igual que Ruby On Rails, CakePHP facilita al usuario la interacción con la base
de datos mediante el uso de Active record.
- Compatible con PHP4 y PHP5
- CRUD de la base de datos integrado
- URLs amigables
- Sistema de plantillas rápido y flexible
- Ayudas para AJAX, Javascript, HTML, forms y más
- Trabaja en cualquier subdirectorio del sitio
- Validación integrada
- Scaffolding de las aplicaciones
- Lista de control de acceso
- Sintetización de datos
- Componentes de seguridad y sesión
CAKEPHP Y MVC
CakePHP
proporciona clases para el Controlador, Modelo y la Vista, pero adicionalmente
incluye algunas clases más para mejorar el tratamiento a cada capa y hacer el
desarrollo más sencillo y rápido. Componentes, Comportamientos y Helpers son
clases que proveen de extensabilidad y reusabilidad a la base de las clases del
MVC.
EXTENSIONES DE LOS CONTROLADORES
("COMPONENTES")
Un
componente es una clase que ayuda a la lógica de un controlador. Si tienes
alguna lógica y la quiere compartir entre varios controladores (o
aplicaciones), un componente suele ser una buena elección. En lugar de escribir
lógica en el método de un controlador, se puede empaquetar en un componente
para poder compartirla.
Los
Controladores también están equipados con callbacks. Puedes utilizar estos
callbacks si necesitas insertar alguna lógica en las operaciones del núcleo de
CakePHP. Los Callbacks disponibles incluyen:
- beforeFilter(), se ejecuta antes que cualquier otra acción del controlador
- beforeRender(), se ejecuta después de la lógica del controlador, pero antes de que la vista se renderice
- afterFilter(), se ejecuta después de toda la lógica del controlador, incluido el renderizado de la vista. Puede que no haya ninguna diferencia entre afterRender() y afterFilter(), a menos que hayas llamado manualmente a render() en el controlador y hayas incluido alguna lógica después de esa llamada.
EXTENSIONES DE LAS VISTAS
Un
ayudante (Helper) es una clase que ayuda a la lógica de una vista. Del mismo
modo que varios controladores utilizan un componente, los ayudantes hacen que
varias vistas accedan y compartan lógica presentacional. Con uno de los
ayudantes del núcleo, el AjaxHelper, el manejo de las peticiones Ajax en las
vistas es mucho más fácil.
La
mayoría de las aplicaciones repiten piezas de código en sus vistas. CakePHP
facilita la reutilización de este código con diseños (layouts) y elementos
(elements). Por defecto, toda vista renderizada por un controlador se coloca en
un diseño (layout). Los elementos entran en juego cuando hay que reutilizar
estos fragmentos pequeños de contenido.
EXTENSIONES DE LOS MODELOS
Del
mismo modo, los Comportamientos (Behaviors) son formas de añadir funcionalidad
común entre los modelos. Por ejemplo, si almacena datos de los usuarios en una
estructura de árbol, puede especificar que su modelo de usuario se comporte
como un árbol, y obtener libre funcionalidad para eliminar, añadir y mover
nodos en la estructura de árbol subyacente.
Los
modelos también cuentan con el apoyo de otra clase llamada DataSource (Origen
de datos). Los DataSource son una abstracción que permite a los modelos
manipular diferentes tipos de datos de forma consistente. Si bien la principal
fuente de datos en una aplicación CakePHP es a menudo una base de datos, puede
escribir DataSources adicionales que les permitan a sus modelos representar
canales RSS, archivos CSV, entradas LDAP, o eventos iCal. Los DataSources le
permiten asociar registros de diferentes fuentes: en lugar de limitarse sólo a
uniones (joins) SQL, los DataSources le permiten decirle a su modelo LDAP que
está asociado a muchos eventos iCal. Así como los controladores, los modelos
también incluyen callbacks:
- beforeFind()
- afterFind()
- beforeValidate()
- beforeSave()
- afterSave()
- beforeDelete()
- afterDelete()
Los
nombres de estos métodos deben ser lo suficientemente descriptivos para que
sepa lo que hacen.
CONTROLADORES
Un
controlador es usado para manejar la lógica de cierta sección de la aplicación.
Comúnmente, los controladores son usados para manejar la lógica de un sólo
modelo. Por ejemplo, si estás construyendo un sitio que maneja una colección de
vídeos, podrías tener un VideoController y un AlquilerController manejando los
vídeos y los alquileres, respectivamente. En Cake, los nombres de los controladores
están siempre en plural.
Los
controladores de tu aplicación son subclases de la clase AppController de Cake,
que a su vez extiende la clase principal Controller. Los controladores pueden
tener cualquier cantidad de acciones (funciones usadas en tu aplicación web
para mostrar vistas).
La
clase AppController puede ser definida en /app/app_controller.php y debe
contener métodos que son compartidos entre dos o más controladores. A su vez,
AppController es una subclase de Controller que es una clase de la biblioteca
estándar de Cake. Una acción es una única funcionalidad de un controlador.
Facilita
el setup de nuestro proyecto brindándonos herramientas para crear la estructura
de directorios, clases, etc. por línea de comandos, integración con phpUnit por
medio de Zend_Test para facilitar el testing de nuestra aplicación.
Es
ejecutada automáticamente por el Dispatcher si una solicitud de página entrante
la especifica en la configuración de rutas (routes). Retomando el ejemplo de la
colección de vídeos, nuestro VideoController podría tener las acciones view(),
rent(), y search(). El controlador debería estar ubicado en
/app/controllers/videos_controller.php y contener.
ZEND
FRAMEWORK 2
Este popular framework es de código abierto y
permite desarrollar aplicaciones web utilizando el código orientado a objetos.
Empresas como BBC, BNP paribas o Cisco WebEx lo consideran indiscutible para
sus desarrolladores. Es altamente adaptable a cualquier tipo de proyecto,
aunque resulta un tanto difícil de aprender debido a su dificultad, lo cual ya
se trabaja en una versión más sencilla que saldrá muy pronto.
ZF implementa el patron MVC, es 100% orientado a
objetos y sus componentes tienen un bajo acoplamiento por lo que los puedes
usar en forma independiente. Un punto importante es que nos brinda un estándar
de codificación que deberíamos seguir en nuestros proyectos.
Aunque se pueden utilizar de forma individual, los
componentes de la biblioteca estándar de Zend Framework conforman un framework
de aplicaciones web al combinarse. ZF ofrece una implementación MVC, una
abstracción de base de datos, y un componente de formularios que implementa la
prestación de formularios HTML, validación y filtrado para que los
desarrolladores puedan consolidar todas las operaciones usando de una manera
sencilla la interfaz orientada a objetos. Otros componentes, como Zend_Auth y
Zend_Acl, proveen autentificación de usuarios y autorización diferentes a las
tiendas de certificados comunes.
También existen componentes que implementan
bibliotecas de cliente para acceder de forma sencilla a los web services más
populares. Cualesquiera que sean las necesidades de su solicitud, usted tiene
todas las posibilidades de encontrar un componente de Zend Framework que se
pueda utilizar para reducir el tiempo de desarrollo.
El principal patrocinador del proyecto Zend
Framework es Zend Technologies, pero muchas empresas han contribuido con
componentes o características importantes para el marco. Empresas como Google,
Microsoft y StrikeIron se han asociado con Zend para proporcionar interfaces de
servicios web y otras tecnologías que desean poner a disposición de los
desarrolladores de Zend Framework.
Características principales
ZF
implementa el patron MVC, es 100% orientado a objetos y sus componentes tienen
un bajo acoplamiento por lo que los puedes usar en forma independiente. Un punto importante es que nos brinda un
estándar de codificación que deberíamos seguir en nuestros proyectos.
A
su vez, cuenta con soporte para internalización y localización de aplicaciones
(construir sitios multi idioma, convertir formatos de fechas, monedas, etc.
según la región. Algo importantísimo para crear aplicaciones con un enfoque
global y llegar de la mejor manera a la mayor cantidad de gente posible).
Facilita
el setup de nuestro proyecto brindándonos herramientas para crear la estructura
de directorios, clases, etc. por línea de comandos, integración con phpUnit por
medio de Zend_Test para facilitar el testing de nuestra aplicación.
ACTION CONTROLLERS
Los
controladores son clases que extienden de Zend_Controller_Action. Cada
controlador tiene unos métodos especiales cuya nombre tiene el sufijo “Action”,
llamados “action methods”. Por default, las URLs en ZF son del tipo
/controlador/action, es decir que si en nuestro IndexController tenemos un
“pruebaAction” lo podremos ejecutar desde /index/prueba.
No hay comentarios:
Publicar un comentario