Sei sulla pagina 1di 21

Origen, Definición, Características y Generalidades de Frameworks

La tecnología se mueve un ritmo vertiginoso y año tras año aparecen nuevas herramientas
para el desarrollo de Software que nos simplifican el trabajo, debido a la demanda actual y
el poco tiempo para la entrega de proyectos aparecen utilidades que cubren estos
problemas que son muy importantes solucionarlos, un Framework nos resuelve estos y
muchos otros problemas, en este artículo te hablaremos sobre esta herramientas y otros
detalles de ella.

Que es un Framework ?
Un framework es un entorno o marco de trabajo que nos ayuda a realizar aplicaciones
profesionales, estables y dinámicas mediante un conjunto de paquetes, herramientas y
utilidades que agilizan el proceso de desarrollo de un proyecto. Un framework es parte del
paradigma del Desarrollo de Software Ágil te hace mas productivo en menos tiempo.

Entre las características mas destacadas de un Framework son:

 Es Escalable, puede crecer al ritmo de tu proyecto para mejor.


 Tiene Inversión de Control, no es dominado tanto asi por el Lenguaje de
Programación para el que trabaja si no que lo hace independientemente, es decir se
escala según las características del Framework.
 Cuenta con el paradigma Modelo, Vista, Controlador (MVC), una estructuración
estandarizada.
 Te ayuda a evitar escribir código repetitivo.
 Contiene varios aspectos que te tomarían mucho tiempo hacerlo como, como la
seguridad, la gestión dinámica de Base de Datos, implementación de vistas front,
todo esto un Framework te lo da para que solo te dediques a desarrollar tu proyecto.
 El tiempo de desarrollo es menos.
 Ayuda a trabajar colaborativamente un proyecto entre varios desarrolladores.

Arquitectura MVC (Modelo Vista Controlador)


En la mayoría de Frameworks se mantiene consigo una estructura para trabajar de manera
más organizada y profesional, este es el paradigma MVC que se divide en 3 aspectos, el
Modelo para hacer las gestiones con la Base de Datos, el Controlador en donde se ejecutan
los métodos y funciones que unirán al Modelo y la Vista y por último la Vista o Vistas que
son las páginas que los usuarios verán de tu proyecto.
En el entorno real se trabajan con 3 directorios uno para los modelos otra para los
controladores y otra para las vistas.

Modelo
En un modelo o una carpeta de Modelos se almacenas archivos que contienen métodos
que hacen consultas a una tabla de la Base de Datos y hacer otras gestiones con ella.
Controlador
En esta carpeta puedes colocar o encontrar varios archivos que contienen codigo con
métodos que hacen una consulta de datos a la base de datos dinámicamente y estos son
enviados a la Vista, por ejemplo puedes Consultar con un Modelo a una tabla postres, con
el controlador le dices que liste todos los postres que tenga un stock de más de 20 unidades
y que los imprima en una vista.
Vista
En esta carpeta puedes encontrar las páginas que serán vistas por los usuarios, todo lo que
gestionas en un controlador lo envías a estas vistas para ser visualizados. Por ejemplo en
una vista se imprimirán los postres que cuenten con un stock de más de 20 unidades.

Historia
Existe muy poca información referente a como aparecieron los Frameworks, en la mayoría
cada Framework tiene su propia historia y fecha de creación, te dejamos una imagen creada
por Matt Raible una gran labor de parte de el.

Tipos de Framework
Podríamos dividir los tipos de Framework en 2 esencialmente:

Frameworks para Desarrolladores Front-ends


Son los Frameworks que facilitan el trabajo para las vistas o paginas que serán vistas por el
usuario final o el publico, este tipo de Frameworks se componen en su core con tecnologías
como Javascript, HTML y CSS.

Podemos mencionar para esta categoría a Frameworks como Angular JS, React JS, Vue
JS, Bootstrap, Material Design entre otros.
Frameworks para Desarrolladores Back-ends
Este tipo de Frameworks facilitan el trabajo con Lenguajes de Programación de lado del
Servidor como Python, Ruby, PHP, Javascript del lado del servidor (Node JS), Java, etc.
Ayudan a gestionar las Bases de Datos, el envío y procesamiento de datos, Cookies,
Sesiones, etc.

En esta categoría podemos encontrar a Frameworks como Django, Ruby on Rails, Node
JS, Laravel, Spring, React Native JS, etc.
Conclusión
Los Frameworks en la actualidad se encuentran en una fase estable, si deseas ser mas
productivo y sacar tus proyectos más rápidos, de manera profesional y muy bien
estructurados, te aconsejamos usar un Framework. En grandes proyectos se suelen usar
más de un Framework esto con el fin de tener separadas las lógicas de los procesos en el
proyecto.
Clasificación según su Estructura

Clasificación de los web frameworks


El mercado de las aplicaciones web es muy variado. Las apps disponibles en el navegador se
diferencian entre sí, en función del ámbito de aplicación y del espectro de funciones, no solo
en cuanto a tamaño y apariencia, sino también en lo referente al diseño del software. El motivo
para ello es la diversidad de los frameworks web disponibles, basados en diferentes
tecnologías y que siguen diferentes planteamientos en el diseño de software. En
contraposición, también funcionan los enfoques de una única página, múltiple, del lado del
servidor y del cliente, así como los frameworks web basados en acciones y en componentes.

Enfoques de página única y múltiple


Las aplicaciones de página múltiple están formadas por varias páginas HTML que, por regla
general, se abren al introducir la correspondiente dirección URL en el navegador y que están
conectadas entre sí mediante hipervínculos. La interfaz de usuario de una aplicación de
página única, por su parte, consta de una página HTML en la que convergen todas las
entradas del usuario. Esta puede estructurarse a través de paneles, pestañas o tarjetas de
registro, pero la dirección URL de una aplicación de página única no se modifica durante la
navegación.

Web frameworks del lado del servidor y del cliente


El modelo de programación de una aplicación web clásica se corresponde con el de la World
Wide Web, cuya arquitectura está marcada por el Hypertext Transfer Protocol (HTTP).
Cuando un usuario accede a una aplicación web, en ello participan tanto uno o varios
servidores como un programa cliente, por lo general, un navegador web. En función de cómo
esté diseñada la comunicación entre el servidor y el cliente se puede hablar de aplicaciones
centradas en el servidor (server-centric) o en el cliente (client-centric):

 Client-centric: si, al iniciar una aplicación, la interfaz de usuario HTML, incluida la


lógica de la aplicación, se carga en su totalidad en el cliente, se puede hablar de
aplicaciones centradas en el cliente. Los cambios en la interfaz a causa de las
entradas del usuario son realizados por medio de lenguajes de programación del lado
del cliente, como por ejemplo JavaScript. Un enfoque de diseño como tal es el que se
recomienda para aplicaciones en las que los usuarios trabajan durante un espacio de
tiempo prolongado en la misma vista, ya que el servidor vuelve a cargar los datos de la
interfaz. El enfoque o planteamiento del lado del cliente se utiliza para desarrollar
aplicaciones de página única y es seguido por frameworks de JavaScript
como AngularJS o EmberJS.

 Server-centric: en el caso de las aplicaciones centradas en el servidor, la lógica de la


aplicación permanece en el servidor, que crea la interfaz de usuario y la entrega a los
clientes para su presentación. Para llevar a cabo cambios en dicha interfaz, se puede
recurrir a lenguajes de programación del lado del servidor y, en gran parte, dichos
cambios se llevan a cabo con independencia de las inseguridades del lado del cliente.
Este planteamiento se aplica, en general, en las aplicaciones de página múltiple, en
las que se puede acceder a las diversas vistas de página en función de las
necesidades del servidor. Un diseño de software de tales características está ligado a
tiempos de carga más prolongados, aunque reduce los requerimientos en el
dispositivo del cliente. En algunas apps también se puede evitar, en este sentido, la
permuta de la lógica de control por motivos de seguridad. La realización de este
planteamiento del lado del servidor es el que se da, por ejemplo, en frameworks como
Django, Zend y Ruby on Rails.

Un enfoque centrado en el servidor está presente, sobre todo, en frameworks desarrollados


para crear aplicaciones web clásicas con una estructura de página múltiple e interfaces
HTML clásicas. En estas aplicaciones solo se muestra la interfaz, que, por regla general,
utiliza el navegador, lo que hace que pueden ejecutarse independientemente del sistema
operativo o navegador web que se use. El servidor se encarga de la lógica de control
siguiendo el esquema de comunicación de solicitud-respuesta de HTTP.

Las aplicaciones web centradas en el cliente también reciben el nombre de Rich Clients o Rich
Internet Applications (RIA). Este tipo de aplicaciones implementan la interfaz de usuario y la
lógica de aplicación en el cliente, la cual se cargará completamente cuando dichas
aplicaciones se inicien. Al contrario de lo que ocurre con las aplicaciones web clásicas, al
optar por el enfoque del lado del cliente se pueden llevar a la práctica otro tipo de funciones,
como el control por drag and drop, la accesibilidad en línea y el acceso al disco duro, usuales
en las aplicaciones de escritorio.

Frameworks web basados en acciones vs. frameworks web


basados en componentes
En el plano del control de las aplicaciones, los web frameworks pueden dividirse en dos
clases. Mientras que los frameworks web basados en acciones (action-based) reproducen el
modelo de solicitud/respuesta (request/response) en el que se basa HTTP, los web
frameworks basados en componentes (component-based) prescinden de él.

Frameworks web basados en acciones: en los entornos de trabajo web basados en


acciones, el controlador constituye una instancia central que se hace cargo de las solicitudes
de los clientes, las valida y pone en marcha una acción. Para cada posible acción, los
desarrolladores de apps tienen que crear previamente un objeto de software que contenga la
correspondiente lógica de la aplicación y dicho objeto puede, por lo general, deducirse de
clases abstractas.

Una vez finalizada la acción, el controlador actualiza el modelo de datos y transmite el


resultado a la vista, que genera la respuesta y la manda de vuelta al cliente.

Los frameworks web basados en acciones se apoyan en el patrón MVC y reciben la


nomenclatura de “request-based” debido a la estricta aplicación del esquema
request/response. Sus representantes clásicos son:

 Django

 Ruby on Rails

 Symfony

 Spring MVC
 CodeIgniter

Debido a que los desarrolladores de aplicaciones son los encargados de definir en detalle las
posibles acciones de los frameworks web basados en acciones, se habla de enfoque white
box. Este posibilita que los desarrolladores tengan más margen de acción, aunque requiere
una mejor comprensión de los web frameworks correspondientes, ya que los desarrolladores
son los responsables de la creación de HTML, CSS y JavaScript.

Frameworks web basados en componentes: en contraposición al enfoque controlado por


acciones, los web frameworks controlados por componentes prescinden del patrón
solicitud/respuesta (request/response) en el que se basa HTTP y en el que la interfaz de
usuario de una aplicación web es contemplada como una recopilación de componentes. Para
cada uno de estos componentes, que están unidos del lado del servidor con objetos de
software, se definen determinadas reacciones durante el desarrollo de la aplicación web.
Estas dan lugar a ciertos eventos que se resuelven por medio de una interacción del usuario
con los componentes. En este caso también se puede hablar de frameworks web controlados
por eventos. Sus representantes clásicos son:

 Lift

 Apache Tapestry

 JavaServer Faces

 Apache Wicket

La idea básica que se esconde tras el enfoque basado en componentes es la de agrupar


acciones similares. El componente AccountController representa, por ejemplo, acciones
como login, logout o getAccount. Un objeto de software puede ser responsable de más de una
acción y, a este respecto, los web frameworks basados en componentes ofrecen, por lo
general, una gran selección de componentes reutilizables que ocultan los detalles del
esquema request/response a los desarrolladores de apps. En este contexto se puede hablar
de black box. Este tipo de frameworks web son apropiados para los desarrolladores que
quieren basarse, en primer lugar, en componentes predefinidos. Quien quiera tener mayores
libertades con respecto a HTTP, HTML, CSS y JavaScript, es más conveniente que opte por
los web frameworks basados en acciones.

Selección de un framework web


Debido a la gran influencia de los frameworks en las funciones y posibilidades de diseño de
las aplicaciones web y en el flujo de trabajo durante el desarrollo de las mismas, el proceso de
trabajo comienza, por regla general, con la selección del marco de programa adecuado. En
ello, se tienen que tener en cuenta el proyecto de software y los conocimientos previos
adquiridos.

Las cuestiones fundamentales a este respecto están relacionadas con el tipo de aplicación y
con la arquitectura deseada (centrada en el servidor o en el cliente), ambos aspectos con
consecuencias directas sobre el control y la facilidad de manejo de las web apps.

Los conocimientos lingüísticos y la disponibilidad de la infraestructura necesaria también


constituyen un punto de partida para la búsqueda del framework web adecuado.
Especialmente en el caso de los lenguajes de programación más habituales como PHP
(p.ej., Zend, Symfony, CakePHP o CodeIgniter), Java (p.ej., JavaServer Faces o Apache
Wicket) o Python (p.ej., Django), se puede recurrir a una gran selección de web frameworks
bien documentados. La popularidad de Ruby en el marco del desarrollo web tiene que ver,
sobre todo, con el famoso web framework Ruby on Rails. Los web frameworks centrados en el
cliente se suelen apoyar en el lenguaje de scripts JavaScript.

Los desarrolladores que en el pasado se dedicaban básicamente a programar aplicaciones de


escritorio se encuentran menos cómodos cuando utilizan el modelo de programación del
esquema request/response de aquellos entornos de trabajo basados en acciones que los
desarrolladores web clásicos. En este caso puede ser un buen punto de partida usar los
frameworks web basados en componentes.
ESTÁ EN BOCA DE PROGRAMADORES, PERO ¿EL RESTO
SABE EN QUÉ CONSISTE UN FRAMEWORK?

En el mundo del diseño y desarrollo nos encontramos comúnmente con el término


framework, que denota a un conjunto de herramientas que nos ayudan a trabajar en forma
más sencilla y podemos reutilizar en diversos proyectos, no obstante hay bastante que
ahondar en torno a ello, por lo que hemos querido dedicar este post a explicar qué es un
framework.

La traducción literal del término, marco de referencia nos da un primer indicio de su


significado, ya que se trata de un esquema o patrón que permite se puede estructurar de una
mejor forma el código, es decir al utilizar un framework se programa escribiendo menos
líneas de código, lo que por supuesto es una ventaja que los programadores no
desaprovechan.

Podría decirse entonces que un framework es una aplicación genérica incompleta que
se puede configurar para añadirle las líneas de código que sean necesarias para
programar una determinada aplicación; una analogía de ello podría ser un rompecabezas al
que se le pueden agregar nuevas piezas para hacerlo más completo y detallado o agregarle
nuevas funciones.

Este marco de referencia o marco de trabajo nos provee un conjunto de código que se puede
utilizar y reutilizar en cualquier sistema, bien sea simple o complejo; ofreciéndonos una
forma estándar para trabajar en un lenguaje de programación determinado; es decir
empleando un paradigma ya existente; siendo el Modelo-Vista-Controlador – MVC el más
empleado en la actualidad.

Django es uno de los framework más populares en entornos web para el lenguaje Python;
Ruby on Rails es su par en Ruby, por lo que cuando se se habla de ellos, Django o Ruby on
Rails, no se está hablando de un lenguaje de programación en concreto sino de frameworks
desarrollados para facilitar la creación (escritura) de código en Python o Ruby.
PHP se ha convertido en el lenguaje más utilizado para desarrollar aplicaciones web; la
mayor parte de programadores, por no decir la totalidad, no programan desde cero con este
lenguaje, sino que emplean frameworks como Symfony, Laravel, CodeIgniter o Zend, lo
que les facilita enormemente el trabajo y les ahorra mucho tiempo de programación.

TIPOS DE FRAMEWORKS

Actualmente existen varios tipos de frameworks que se pueden emplear para el desarrollo
de aplicaciones, así como de sitios web; entre ellos tenemos:

PARA APLICACIÓN WEB

Es un marco creado para facilitar el desarrollo de aplicaciones web, sitios web dinámicos y
servicios web, un conjunto de herramientas que facilitan y agilizan la creación de sistemas
web; permitiendo además crear diseños reutilizables.

PARA APLICACIONES

Se trata de un tipo de framework que facilita implementar la estructura estándar de


cualquier aplicación para un determinado sistema operativo, Microsoft, por ejemplo, ha
desarrollado el .NET Framework, un marco de trabajo que viene incluido en el sistema
operativo Windows, ofreciendo a los programadores una extensa biblioteca de clases para
los lenguajes de programación de Microsoft Visual Studio.

AJAX

Es un marco de referencia muy utilizado para la creación de páginas web dinámicas y


aplicaciones web, ofrece diversos beneficios a los programadores tanto del lado del
servidor como del lado del cliente, lo que facilita la programación y la reutilización del
código.
DE GESTIÓN DE CONTENIDO

Conocido por sus siglas en inglés CMF, este tipo de framework brinda una interfaz de
programación de aplicaciones que facilita y agiliza la creación de un sistema de gestión de
contenidos personalizado; posibilitando una gestión muy eficiente del contenido web.

DE MULTIMEDIA

Se trata de un tipo de framework que permite manejar los medios electrónicos de un


ordenador o computador, para ello ofrece una interfaz sumamente intuitiva para la creación
de diversas aplicaciones multimedia.

Diferencias entre Frameworks y Lenguajes


En algunos proyectos web se ven datos incorrectos cuando se describe utilizando de
igual forma frameworks y lenguajes, como si significaran lo mismo. Este popurri de
términos tecnológicos que se utilizan indistintamente, suelen ser palabras de moda
o buzzwords que atraen el posicionamiento en los buscadores, sin embargo el mensaje
no tiene sentido porque las palabras técnicas tienen referencias erróneas. Los términos
que más se utilizan en este tipo de mensajes sobre proyectos web son frameworks y
lenguajes de programación. Hoy queremos hablarles sobre las diferencias entre estos
dos términos.

Lenguaje de Programación
Un lenguaje de programación es el idioma para desarrollar un software, se podría
decir que los programadores conocen el idioma con el cuál comunicarse con las
máquinas. Y existen diversidad de idiomas y cada técnico esta especializado en uno
pero conoce los otros también. Como ejemplo sería igual con las personas que saben
otros idiomas: inglés, francés o alemán y pueden comunicarse con las nativas de esos
idiomas.
Según la definición de Wikipedia "Un lenguaje de programación es un idioma artificial
diseñado para expresar procesos que pueden ser llevadas a cabo por máquinas como
las computadoras. Pueden usarse para crear programas que controlen el
comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión,
o como modo de comunicación humana. Está formado por un conjunto de símbolos y
reglas sintácticas y semánticas que definen su estructura y el significado de sus
elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se
compila y se mantiene el código fuente de un programa informático se le llama
programación."
Lenguajes de programación: PHP, Python, Ruby, Perl, C++, Java. Estos son los
más conocidos, sin embargo, no dejan de aparecer lenguajes todos los días para
realizar procesos con las máquinas. Nosotros en Punto Abierto por ejemplo
estamos especializados en lenguaje de programación PHP

Frameworks
La palabra framework si la traducimos de forma directa sería "marco de trabajo", pero
haciendo una traducción más adaptada a la forma de utilizarla sería estructura o
infraestructura digital. En ella se trabaja escribiendo el código con un sólo lenguaje que
puede ser PHP, Python, Ruby.
Según Wikipedia: "En el desarrollo de software, un framework o infraestructura digital,
es una estructura conceptual y tecnológica de soporte definido, normalmente con
artefactos o módulos de software concretos, con base a la cual otro proyecto de
software puede ser más fácilmente organizado y desarrollado. Típicamente, puede
incluir soporte de programas, bibliotecas, y un lenguaje interpretado, entre otras
herramientas, para así ayudar a desarrollar y unir los diferentes componentes de un
proyecto.
Para entender mejor qué es la infraestructura y cuál el lenguaje vamos a señalar
algunos ejemplos:
Framework -> Django / Lenguaje de programación -> Python
Framework -> Kohana / Lenguaje de programación -> PHP
Framework -> Ruby on Rails / Lenguaje de programación -> Ruby
Framework -> Catalyst /Lenguaje de programación -> Perl
Framework -> Spring / Lenguaje de programación -> Java

Informaciones interesantes
Python: El nombre Python fue puesto por los programadores que lo crearon en honor
al grupo humorístico inglés Monty Python, con películas tan buenas como La vida de
Brian o El sentido de la vida. Grupo del cuál formó parte el gran director de cine Terry
William con películas como Twelve Monkeys, The Imaginarium of Doctor
Parnassus ,Brazil.
Django nació dentro del equipo desarrollo web del periódico "Lawrence Journal-
World" en Kansas, Estados Unidos. Según esta fuente: "El equipo "World Online",
responsable de la producción y mantenimiento de varios sitios de noticias locales,
prosperado en un ambiente de desarrollo dictado por los tiempos limites del periodismo.
Para los sitios - incluyendo LJWorld.com, Lawrence.com y KUsports.com - periodistas
(y administradores) demandaban que fueran añadidas características y aplicaciones
enteras fueran construidas en una intensamente rápida agenda, comúnmente con solo
días u horas para desarrollarlo. De este modo, Simon y Adrian habían desarrollado un
web framework que les ahorraba tiempo - esa fue la única manera en que ellos pudieron
construir aplicaciones mantenibles bajo los estrictos tiempos de entrega. En el verano
del 2005, después de habiendo desarrollado este framework hasta un punto donde
eficientemente impulsaba la mayoría de los sitios "World Online", el equipo, el cual
ahora incluía a Jacob Kaplan-Moss, decidieron liberar el framework como software de
codigo abierto. Lo liberaron en Julio de 2005 y lo llamaron Django, en honor al guitarrista
de jazz Django Reinhardt."
La diferencia entre frameworks y lenguajes de programación no sólo se confunde
para personas que no tienen conocimientos técnicos de desarrollo, incluso puede
ocurrir que algunos desarrolladores como es en este caso se confundan:

Ruby on Rails (Framework que utiliza lenguaje


Ruby) versus PHP (lenguaje de programación)
Selección de los mejores frameworks PHP
Publicado el 1 septiembre, 2014 por Edson Mollericona Marín | Categoría:
 Desarrollo Web
11

Un framework como bien lo describe su término en ingles llega a ser un marco de


trabajo, es decir una herramienta que esta compuesta por prácticas y criterios para
afrontar y resolver problemas. En el desarrollo web son muy útiles ya que aceleran
la creación y mantenimiento de nuestras aplicaciones web.

En este artículo realicé una selección de los frameworks PHP más utilizados en la
web, no quiero enaltecer a ninguno en particular ya que cada quien tiene su
preferido o está en la libertad de seleccionar uno acorde a sus necesidades, de tal
forma es que esta selección no tiene un orden prioritario en particular.

En esta selección haré mención de cada uno de los frameworks junto con una
descripción y algunas de sus características, el propósito del articulo es que tu
puedas conocer y analizar las ventajas que te puede traer utilizar uno de estos
frameworks, aclaro también que todas estas características fueron extraídas de las
páginas oficiales de cada uno de estos. Siendo así comencemos 8-)

Zend Framework 2

Muchos lo mencionan como el padre de los frameworks, Zend Framework 2 es un


framework Open Source para desarrollar aplicaciones y servicios web usando PHP
5.3 +, utiliza al 100% de código orientado a objetos y utiliza la mayor parte de las
nuevas características de PHP 5.3, es decir, espacios de nombres, funciones,
vinculantes estáticos.
Entre sus principales características podemos mencionar que Zend Framework 2 es
modular ya que se pueden construir bloques de código que pueden ser utilizados
en otras aplicaciones, es seguro porque cuenta con herramientas de cifrado de
código, es extensible porque se adapta fácilmente a las necesidades y desde luego
cuenta con una gran comunidad para recibir ayuda y resolver problemas.

Utiliza PHPUnit para pruebas de código y Travis CI como servicio de integración


continua, ofrece una aplicación robusta de alto rendimiento MVC, también cuenta
con un componente de formularios que implementa HTML5, otros componentes a
mencionar son de autenticación y permiso de usuarios. Dada la importancia de este
framework se puede decir que 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.

Página oficial: http://framework.zend.com/


Laravel

Laravel es un framework PHP de gran potencia que compone de herramientas


necesarias para desarrollar aplicaciones robustas con una sintaxis expresiva y
elegante facilitando tareas comunes como la autenticación, enrutamiento, sesiones
y almacenamiento en caché. Este framework intenta combinar lo mejor de otros
frameworks como Ruby on rails, ASP.NET MVC y Sinatra. Esta demás decir que
utiliza el patrón MVC (modelo-vista-controlador).
Utiliza ORM para sus bases de datos y cuenta con un gran sistema de migración,
trabaja muy bien con MySQL, Postgres, SQL Server y SQLite. Ejecuta sus pruebas
de código con PHPUnit y tambien cuenta con un sistema amplio de plantillas.

Página oficial: http://laravel.com/

CakePHP

CakePHP hace que tus aplicaciones web se realicen de una forma mas rápida y
simple requiriendo menos código, puedes construir rápidamente tus aplicaciones
con funciones para generar código y así poder utilizarlos como prototipos, su
configuración para conexión a base de datos es demasiado simple de esa forma te
despreocupas de este aspecto y te dedicas netamente a hornear tus aplicaciones.
Utiliza un MVC bastante limpio de tal forma que puedes tener tu aplicación
totalmente modularizado sin olvidar que también cuenta con sus respectivos
componentes como el de autenticacion de usuarios, validación de datos,
almacenamiento en cache y muchos otros.

CakePHP viene con herramientas integradas para la validación de entrada de datos,


protección CSRF, protección de la manipulación de formularios, la prevención de
inyección SQL y XSS ayudando a mantener la aplicación segura y estable.

Página oficial: http://cakephp.org/

Symfony

Symfony es un framework PHP construido por varios componentes independientes


creados por el proyecto symfony, aprender a programar con Symfony te da
oportunidad para acceder a varios de sus proyectos que consta
del frameworkSymfony2 para proyectos complejos y también cuenta con un mini
framework Silex para sitios web más sencillos, su código, y el de todos los
componentes y librerías que incluye, se publican bajo la licencia MIT de software
libre. Los componentes de Symfony son tan útiles y están tan probados, que
proyectos tan gigantescos como Drupal 8 , phpBB y eZ Publish fueron construidos
con dichos componentes.
Según GitHub, Symfony es el proyecto PHP más activo, lo que garantiza que el
proyecto siempre estará en constante actividad, sin ir mas lejos el líder del proyecto,
Fabien Potencier, es la segunda persona más activa del mundo en GitHub (ver
datos).
Página oficial: http://symfony.com/

CodeIgniter

Desarrollada por la empresa estadounidense EllisLab, CodeIgniter es un framework


open source el cual tiene como objetivo permitir que los desarrolladores puedan
realizar proyectos mucho mas rápido que creando toda la estructura desde cero
proporcionando un amplio conjunto de bibliotecas para tareas comúnmente
necesarias de tal forma que permite enfocarse en un proyecto minimizando la
cantidad de código para una tarea determinada.

Su sistema esta basado en el patrón modelo-vista-controlador, contiene formularios


y validaciones de datos, también cuenta con una manipulación de imágenes donde
se puede recordar, re-dimensionar y rotar soportando librerías GD, ImageMagick, y
NetPBM. Cuenta con componentes de localización, paginación, cache de
almacenamiento de página completa, URLs amigables para motores de búsqueda
y bibliotecas de funciones (Helpers).

Página oficial: https://ellislab.com/codeigniter

Yii Framework

Yii es un framework PHP de alto rendimiento para desarrollo de aplicaciones web


adoptando la arquitectura MVC aplicando el principio de separación de
preocupaciones (SoC), integrado con JQuery, Yii trae un conjunto de widgets AJAX
como ser campos de auto-completado, vistas de árbol, cuadriculas de datos, etc, lo
cual permite obtener una interfaz de usuario altamente eficiente y versátil. Yii
también ha incorporado soporte de autenticacion manejando el control de acceso
basado en roles jerárquicos (RBAC).
Yii está equipado con muchas medidas de seguridad y ayuda a evitar ciertos
ataques tales como SQL injection, cross-site scripting (XSS), cross-site request
forgery (CSRF) y modificacion de los cookies. También provee un conjunto de
herramientas intuitivas y altamente extensibles para la generación de código esto
con el fin de poder generar rápidamente el código que se necesita para funciones
como las entradas de un formulario (CRUD).

Página oficial: http://www.yiiframework.com/

Prado

Prado es un framework basado en componentes y la programación orientada a


eventos para el desarrollo de aplicaciones web, separa la presentación de la lógica
del negocio de esa forma mantiene el código modularizado y extensible, utiliza
componentes con múltiples funciones como controles de entradas HTML,
validaciones, datagrid y asistentes, también comprende componentes de AJAX y
módulos de almacenamiento en cache.

Prado también toma sus medidas de seguridad como la prevención de cross-site y


protección de cookies y desde luego con una amplia documentación y comunidad
activa.

Página oficial: http://www.pradosoft.com/

Flight

Flight es un micro framework PHP simple y extensible para realizar aplicaciones


web RESTful. Este framework ya viene con un conjunto de métodos y componentes
por defecto pero te brinda total libertad de asignar tus propios métodos, registrar
propias clases e incluso anular las clases y métodos ya existentes. También
proporciona soporte integrado para el almacenamiento de cache a nivel HTTP.
Página oficial: http://flightphp.com/

Medoo

Medoo es extremadamente ligero con un solo archivo que pesa al rededor de 14


Kb, fácil de usar y fácil de aprender, optimizado para un alto rendimiento de esa
forma aumenta tanto la experiencia de desarrollo como la experiencia de usuario,
soporta bases de datos SQL, incluyendo MySQL, MSSQL, SQLite, MariaDB, Oracle,
Sybase, PostgreSQL y más.

Medoo también toma en cuenta la seguridad previniendo inyecciones SQL y se


encuentra bajo la licencia MIT es decir que puede ser utilizado libremente.

Página oficial: http://medoo.in/

PHPixie

PHPixie es un framework MVC PHP ligero diseñado para ser rápido, fácil de
aprender y proporciona una base solida para el desarrollo de aplicaciones web, se
concentra bastante en la velocidad de carga de la pagina web con fines de no
sobrecargar el servidor. Proporciona una arquitectura modular y flexible que es fácil
de aprender sobre todo por desarrolladores que ya pasaron por frameworks como
CodeIgniter o Kohana.

Este framework trabaja con el Mapeo objeto-relacional (ORM) y también utiliza


componentes de validación de entrada de usuario, cacheo, autenticacion y
autorización de usuario.

Página oficial: http://phpixie.com/

Kohana

Kohana es un framework HMVC (Modelo-vista-controlador jerárquico) que


proporciona un conjunto de componentes para la construcción de aplicaciones web,
muchos de estos componentes incluyen herramientas de traducción, acceso a
bases de datos, perfiles de código, cifrado, validación, y muchos mas. Es un
framework orientado a objetos por lo que esta construido usando clases y objetos.

La extensión de nuevos componentes y la adición de nuevas bibliotecas es


realmente fácil y utiliza la licencia BSD, por lo que se puede utilizar y modificar para
fines comerciales.

Página oficial: http://kohanaframework.org/


Pop PHP

Pop PHP es un framework compatible con PHP 5.3+ , originalmente contenía 9


componentes de tal forma que su atención se centro en la sencillez y la ligereza,
hoy a pesar de mantener aun esa sencillez Pop PHP ya viene con muchas
características nuevas. Este framework esta orientada a objetos y contiene una API
fácil de usar sus componentes tales como autenticacion, cache, compresión,
encriptación, filtros, fuentes email, gráficos, paginadores, servicio PDF, validador de
entrada de datos entre otros más.

Página oficial: http://www.popphp.org/

Phalcon

Phalcon es un framework PHP basado en el patrón MVC y trabaja con el Mapeo


objeto-relacional (ORM), bajo la licencia BSSD a diferencia de otros frameworks,
Phalcon se implementa como una extensión escrita en C/C++ con el fin de optimizar
el rendimiento de las aplicaciones web, con esto se pretende aumentar la velocidad
de ejecución y optimizar el uso de recursos. El inconveniente es que se requiere
acceso al servidor para su instalación pero no se necesitan conocimientos del
lenguaje C ya que todo lo contiene su núcleo listo para trabajarlo con PHP.

Página oficial: http://phalconphp.com/es/

Aura

Aura es un conjunto de paquetes independientes que trabaja con PHP 5.4+ , estos
paquetes se pueden usar solos o en conjunto con otros combinándolos en un
completo framework. El objetivo de Aura es proporcionar alta calidad que cumplan
estándares de programación aplicados a paquetes de bibliotecas independientes
que pueden ser usados en cualquier código base, es decir que los desarrolladores
pueden usar tanto o poco del proyecto según sus necesidades.

Estos paquetes son tan autónomos e independientemente para su descarga, en


algunos casos este nivel de independencia puede dar lugar a cierta duplicación de
clases entre paquetes por lo que se recomienda que sean utilizados en bases de
codigo que no pertenezcan a aura.
Aura tiene suficientes bibliotecas para formar un framework coherente para el
desarrollo de aplicaciones pero a tener en cuenta que estas bibliotecas se
desarrollaron primero y no se acoplaron originalmente entre si para formar un
framework.

Página oficial: http://auraphp.com/

Fat-Free

Fat-Free (F3) es un micro framework potente y fácil de usar diseñado para ayudar
a construir aplicaciones web dinámicas y robustas rápidamente, con una base de
código súper ligero alrededor de 55 Kb es bastante fácil de aprender, usar y
extender.

F3 es compatible tanto con SQL y bases de datos NoSQL off-the-shelf: MySQL,


SQLite, MSSQL / Sybase, PostgreSQL, MongoDB y su propio Flat-File DB llamado
Jig, también utiliza lo que es el mapeo objeto-relacional para la extracción de datos
y el modelado que es tan ligero como el propio framework en concreto (sin
necesidad de configuración).

También cuenta con protección contra spam y los ataques de denegación de


servicio mediante el uso de controles DNSBL. Entre otras de sus características se
puede hacer mención a su motor de plantillas que es realmente rápido y limpio,
gestión de sesiones de bases de datos, lectores feed, RSS, atom, procesador de
imágenes, servidor pingback, SMTP sobre SSL / TLS, herramientas para la
comunicación con otros servidores, validación de datos y una variedad de plugins
de su comunidad, realmente F3 es un framework bastante completo.
Página oficial: http://fatfreeframework.com/home

Simple MVC framework

Simple MVC framework tiene la característica de contar con una rápida


configuración, con tan solo establecer la ruta del sitio y su controlador por defecto
ya tienes todo listo para comenzar a desarrollar tus aplicaciones web, utiliza un
gestor de base de datos MySQL usando PDO y puede ser intercambiado por
MySQLI. Cuenta con una variedad de fuentes como twitter, facebook y tiene un foro
dedicado para resolver dudas y aportar complementos para este framework.

Página oficial: http://simplemvcframework.com/


Slim Framework

Slim es un micro framework PHP que ayuda a escribir aplicaciones web simples
pero potentes, cuenta con un enrutador potente usando métodos HTTP estándar y
personalizados, prestación de plantillas con vistas personalizadas, también cuenta
con cookies seguros con cifrado AES-256. Slim también utiliza inicios de sesiones
con escritura de registros personalizados, este framework funciona con PHP 5.3+ y
provee una configuración bastante sencilla.

Página oficial: http://www.slimframework.com/

FuelPHP

FuelPHP es un framework MVC simple y flexible que funciona con PHP 5.3+ basado
en las mejores ideas de otros frameworks, fue diseñado desde un principio para
tener completo soporte a HMVC como parte de su arquitectura, pese a eso no se
detuvo ahí ya que también se añadió ViewModels conocidos también como modelos
de presentación lo cual da la opción de añadir una capa de gran alcance entre el
controlador y la vista.

Casi todas las clases del paquete básico de FuelPHP pueden ser ampliados, es
decir que se pueden empaquetar funcionalidades tanto para ampliar como
reemplazar al núcleo de este framework para así poder mantener un sistema mas
modularizado. Si hablamos de seguridad, FuelPHP codifica toda su salida para que
sea segura y prevenir ataques XSS, también es compatible con la prevención de
CSRF con tokens y tanto el filtrado de entradas como el generador de consultas
ayudaran en la prevención de los ataques de inyección SQL

Entre otras de sus grandes características también utiliza ORM, componentes de


autenticacion para usuarios/grupos y ACL básica, funciones hash seguras para
contraseñas y variedad de características que valen la pena revisar.

Página principal: http://fuelphp.com/

Para finalizar realicé una exploración de las tendencias de búsqueda de algunos de


estos frameworks con la herramienta Google trends, como ejemplo use los
frameworks Zend Framework, CodeIgniter, CakePHP y Laravel. No quise incluir
todos los frameworks anteriormente mencionados durante el artículo ya que la
gráfica ni se entendería, pero observando este ejemplo tu mismo puedes usar la
herramienta para poder explorar las tendencias de búsqueda de tu propia selección
de frameworks.

Ahora te queda a ti elegir cual framework PHP esta acorde a tus necesidades, estoy
seguro que te diste cuenta que varios de estos tiene muchas características en
común, pero lo mas importante es que todos estos también tiene una característica
única que es el de ayudarnos a desarrollar nuestras aplicaciones y agilizar este
proceso de desarrollo, vale la pena checar cada uno de estos. Espero que este
artículo te haya sido de mucha ayuda para así conocer estos frameworks, quizá a
muchos de ellos ya los conozcas o hayas escuchado hablar de ellos en la web como
así también hay otros que se presentaron mediante este artículo porque en mi punto
de vista valen la pena mencionarlos.

Potrebbero piacerti anche