Frameworks de PHP

Antes de dar un vistazo a los Frameworks más populares de PHP, primero hay que contestar una pregunta.

Qué es un framework?

La palabra framework significa “marco de trabajo” el cual  define, en términos generales, un conjunto estandarizado de conceptos, prácticas y criterios para enfocar un tipo de problemática particular que sirve como referencia, para enfrentar y resolver nuevos problemas de índole similar.

un esquema (un esqueleto, un patrón) para el desarrollo y/o la implementación de una aplicación. 

Ahora que ya comprendemos el concepto de framework, analizaremos los frameworks más populares de PHP.

Zend Framework

Zend Framework es un framework PHP orientado a objetos 100%, con una fuerte implementación del patrón MVC, una abstracción de datos muy simple de usar y un rendimiento muy estable, siendo uno de los frameworks más robustos de la actualidad. Además, al ser un framework de código abierto, evitaremos posibles problemas con licencias como nos podría ocurrir con algún framework restrictivo o de pago.

Entre las principales características que podemos mencionar, se encuentran:

  • Basado en PHP
  • Esta orientado a objetos
  • Usa el paradigma MVC (aunque no al 100%)
  • Es open source
  • Ofrece un gran rendimiento
  • Ofrece una capa de abstracción a bases de datos fácil de usar
  • Facilita el acceso a los servicios web de distintas compañías como Google o Microsoft
  • Cuenta con una gran comunidad de desarrolladores que contribuyen con el mantenimiento y mejora del proyecto

CakePHP

Uno de los frameworks más ligeros que existen, su paquete base es realmente muy ligero. Tiene la buena (o mala, según se mire) característica de soportar PHP 4, por lo tanto no será un problema para usarlo en servidores que no se hayan actualizado a PHP 5.

Características:

  • 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
  • Access Control Lists
  • Sintetización de datos
  • Componentes de seguridad y sesión

Symfony

Un framework PHP construido enteramente para PHP 5, por lo que no es compatible, pero al mismo tiempo ofrece un rendimiento excelente en la última versión de PHP. Con Symfony el programador se podrá centrar solo realmente en lo que es la programación, obviando tareas comunes y centrándose en el proyecto entre manos.

Symfony fue diseñado para ajustarse a los siguientes requisitos:

  • Fácil de instalar y configurar en la mayoría de plataformas (y con la garantía de que funciona correctamente en los sistemas Windows y *nix estándares).
  • Independiente del sistema gestor de bases de datos. Su capa de abstracción y el uso de ORM (Doctrine 2, Propel), permiten cambiar con facilidad de SGBD en cualquier fase del proyecto.
  • Utiliza programación orientada a objetos y características como los espacios de nombres, de ahí que sea imprescindible PHP 5.3.
  • Sencillo de usar en la mayoría de casos, aunque es preferible para el desarrollo de grandes aplicaciones Web que para pequeños proyectos.
  • Aunque utiliza MVC (Modelo Vista Controlador), tiene su propia forma de trabajo en este punto, con variantes del MVC clásico como la capa de abstracción de base de datos, el controlador frontal y las acciones.
  • Basado en la premisa de “convenir en vez de configurar”, en la que el desarrollador sólo debe configurar aquello que no es convencional.
  • Sigue la mayoría de mejores prácticas y patrones de diseño para la web.
  • Preparado para aplicaciones empresariales y adaptable a las políticas y arquitecturas propias de cada empresa, además de ser lo suficientemente estable como para desarrollar aplicaciones a largo plazo.
  • Código fácil de leer que incluye comentarios de phpDocumentor y que permite un mantenimiento muy sencillo.
  • Fácil de extender, lo que permite su integración con las bibliotecas de otros fabricantes.
  • Una potente línea de comandos que facilitan generación de código, lo cual contribuye a ahorrar tiempo de trabajo.

CodeIgniter

Framework increíblemente ligero que usa el diseño MVC y contiene una muy buena estructuración de sus librerías. Usarlo es tan fácil como descomprimir su contenido en una carpeta en el servidor, sólo con eso ya funcionará. Es uno de los frameworks más indicados para las personas que quieran iniciarse en el uso de los mismos.

Características:

  • Sistema basado en Modelo-Vista-Controlador.
  • Compatible con PHP4.
  • Muy liviano.
  • Clases de base de datos llenas de características con soporte para varias plataformas.
  • Formulario y Validación de datos.
  • Seguridad y filtro XSS.
  • Manejo de sesión.
  • Clase de envío de email.
  • Librería de manipulación de imágenes (cortar, copiar, redimensionar…)
  • Clase de upload de fichero.
  • Clase de FTP.
  • Encriptación de datos.
  • Scaffolding.
  • Clase de calendario.
  • Clase de codificación Zip.
  • Clase de motor de plantillas.
  • Ruteo de URI Flexible.
  • Larga librería de funciones auxiliares.

Laravel

Laravel es un framework de código abierto para desarrollar aplicaciones y servicios web con PHP 5. 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.

Características:

  • Sistema de ruteo, también RESTful
  • Blade, Motor de plantillas
  • Peticiones Fluent
  • Eloquent ORM
  • Basado en Composer
  • Soporte para el caché
  • Soporte para MVC
  • Usa componentes de Symfony

Las diferencias que hay entre cada uno de los frameworks se pueden notar sencillamente a través de la características de cada uno de estos, sin embargo como recomendación final, no resulta una buena manera de juzgar una aplicación el hecho de listar unas características y compararlas entre sí, la única manera de juzgar la aplicación es probándola.

Por último se deja una imagen con una gráfica con los resultados de los frameworks más populares de PHP al final del 2013.

php_frameworks