Twitter Flickr Pinterest LinkedIn YouTube Google Maps E-mail RSS
formats

Frameworks en PHP y el patrón arquitectónico MVC

Al hablar de código web, el lenguaje de scripting PHP es el más famoso del mundo, debido a muchas razones, pero principalmente por su amplia flexibilidad y simpleza.

Pero en ocasiones, la codificación PHP puede volverse bastante monótona y repetitiva. Generación de código enrevesado y no testado por falta de tiempo, es en esas ocasiones cuando nos resultará útil un framework PHP.

Los frameworks PHP hacen mucho más dinámico y rápido el desarrollo de aplicaciones web escritas en PHP, poniendo a nuestra disposición estructuras básicas mediante las cuales construir las aplicaciones. En otras palabras, los frameworks ayudan a promover el rápido desarrollo de aplicaciones (R.A.D.), y reducen la cantidad de código repetitivo para los desarrolladores.

También pueden ayudar a que los principiantes construyan aplicaciones más estables, asegurando interacción apropiada con la base de datos y codificación en la presentación del diseño. Esto te permite pasar más tiempo creando la aplicación propiamente dicha, en lugar de gastarlo escribiendo una y otra vez el mismo código.

La idea general detrás del funcionamiento de un framework PHP es conocida como Model View Controller (M.V.C.). MVC es un patrón arquitectónico en programación que asimila la lógica del negocio de la UI, permitiendo que una pueda ser modificada sin necesidad de modificar a la otra. Con MVC, Model hace alusión a la información, View a la presentación del diseño y Controller a la aplicación o lógica del negocio.

Básicamente, M.V.C. separa el proceso de desarrollo de una aplicación, para que podemos trabajar sobre elementos individuales y que los otros no se vean afectados. Esencialmente, esto hace que la codificación en PHP sea más rápida y menos complicada.

Entonces ¿ Por qué usar un framework PHP ?, ¿ Cuáles son sus ventajas ?

Los desarrolladores deberían utilizar frameworks PHP por varias razones, pero la primera de ellas es para acelerar el proceso de desarrollo. Reutilizar código a lo largo de varios proyectos similares la salvará a los desarrolladores una cantidad increíble de tiempo que de otra manera, sería empleado en tareas tediosas de codificación.

La estabilidad es otra gran razón para usar frameworks. Si bien la simplicidad es uno de los mayores logros de PHP, también puede ser una de sus mayores fallas. Esto se debe a que es muy fácil, especialmente para los principiantes, escribir código malo sin siquiera darse cuenta. Con PHP la aplicación, a menudo, funcionará pero puede que sin saberlo hayas abierto un gran agujero en la seguridad de tu sitio, haciendo que sea susceptible a ataques.

Es necesario recordar que PHP es importante ajustar bien todos los cabos sueltos de nuestro código, aunque la aplicación parezca estar funcionando a la perfección.

Para muchos principiantes, un framework ofrecerá simplicidad como así también estabilidad, por lo que puede resultar una buena idea utilizarlo siempre que sea posible. El mismo ayudará a reducir o eliminar la mala codificación y acelerará el proceso.

Finalmente, la disponibilidad de un framework PHP es extensiva, y existen muchos entre los cuales podemos elegir. Incluso puedes crear uno propio. Más allá de esto, debemos tener presente que siempre deberíamos examinar nuestro proyecto antes de decidir siquiera si utilizar uno o no.

Como “inconvenientes”, podemos mencionar que muchos programadores PHP experimentados ven a los frameworks como herramientas “debilitadoras” que no entienden cómo escribir código limpio y bueno.

Si esto es así o no, es algo para debatir. Pero la realidad es que los frameworks sirven verdaderamente para ahorrar tiempo y ajustar desperfectos en la codificación.

Al trabajar en un proyecto con una fecha de entrega ajustada, usar un framework PHP es un gran beneficio.

Respecto a la elección de uno determinado, al buscar el framework PHP que mejor se adapte a tus necesidades es importante tener en mente quién utilizará / modificará las aplicaciones.

Si son muchas las personas que usarán la aplicación, será mejor implementar un framework PHP popular con el cual muchos desarrolladores estén familiarizados.

Por otro lado, si deseamos construir aplicaciones web para uso personal, podremos seleccionar cualquier framework con el que nos encontremos cómodos, ya sea popular o no.

Algunos de los factores que debemos buscar en un framework son:

  • –  facilidad de uso.
  • –  desarrollo/desempeño rápido.
  • –  popularidad y soporte (páginas de ayuda, guías, foros en donde consultar sobre cualquier inconveniente, etc.)

Es recomendable probar varios frameworks al comenzar para saber cual se adapta mejor a nuestras necesidades. Esto se debe a que cada framework posee sus propias debilidades (que las convierten en inconvenientes) y fortalezas. Otra forma excelente de seleccionar un framework es consultar con los contactos y profesionales de desarrollo sobre cuál es el que ellos prefieren.

Pero ¿Cuáles son los errores más comunes al usar un framework determinado?

Los errores son posibles en cualquier tipo de programación, pero los frameworks PHP ayudan a limitarlos.

Sin embargo, hay ciertas cosas con las que debemos ser cuidadosos al utilizar un framework PHP. Por ejemplo, a menos que seamos expertos en programación PHP, siempre deberemos optar por utilizar un framework popular que cuente con mucho soporte y una base de usuario activa. Existen muchos frameworks que tienen poco o nulo soporte y han sido creados por individuos con conocimiento PHP limitado. Estos pueden hacer que la aplicación no funcione apropiadamente, o causar problemas de seguridad catastróficos en tu web.

Otro error común suele ser no asegurarse de que la base de datos y el servidor web sean compatibles con ese framework particular. Por ejemplo, el framework Seagull PHP recomienda la siguiente configuración:

PHP: PHP 4.3.0 es lo mínimo, versiones más avanzadas funcionan bien, como así también PHP 5.1.1 y superiores. Evitar las series 5.0.x.

MySQL: MySQL 4.0.x, 4.1.x y 5.0.x son todos soportados. También se puede usar 3.23.x.

Apache: Seagull funciona bien con las series 1.3.x y 2.x de Apache.

Si no disponemos de estos requerimientos, no podremos obtener el desempeño perfecto de este framework. Incluso si somos expertos en PHP, siempre deberemos leer la documentación del framework para confirmar la compatibilidad antes de probarlo.

De manera similar al error mencionado anteriormente, no seguir las recomendaciones del proceso de instalación puede ser un gran dolor de cabeza. La clave es tomarse nuestro tiempo en programar sobre el framework y seguir las instrucciones de instalación como es debido.

¿Cuáles son los mejores Frameworks existentes?

En los últimos años ha existido una explosión de frameworks PHP. Existen grandes debates acerca de cuál es el mejor framework, porque la realidad es que no todos los frameworks le sirven a cualquiera. Mostraré una simple revisión acerca de 6 de las mejores y más populares opciones.

 

CakePHP , Web: http://cakephp.org/

Es un framework de desarrollo de aplicaciones web escrito en PHP, creado sobre los conceptos de Ruby on Rails. CakePHP empezó en 2005, cuando Ruby On Rails estaba ganando popularidad y utiliza muchos de sus conceptos. Desde entonces la comunidad creció y generó muchos sub-proyectos. CakePHP es una gran opción tanto para desarrolladores PHP principiantes como para avanzados.

Su sistema de soporte creciente, simplicidad y escalabilidad hacen que CakePHP sea una de los frameworks PHP más populares hoy en día.

CakePHP es un framework o marco de trabajo que facilita el desarrollo de aplicaciones web, utilizando el patrón de diseño MVC. Es de código abierto y se distribuye bajo licencia MIT.

Cakephp está desarrollado en PHP con programación orientada a objetos. Al igual que Ruby On Rails, CakePHP facilita al usuario la interacción con la base de datos mediante el uso de ActiveRecord. Además hace uso del patrón Modelo Vista Controlador.

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. Trabaja en cualquier subdirectorio del sitio, Validación integrada, Scaffolding de las aplicaciones, Access Control Lists, Sanitización de datos. Componentes de seguridad y sesión.

Seagull, web http://seagullproject.org/
Seagull es un framework PHP muy reconocido utilizado para la construcción de webs, líneas

de comando y aplicaciones GUI.

Es extremadamente fácil de usar, ideal para principiantes y expertos. Para los principiantes Seagull posee una librería con aplicaciones de muestra que pueden ser personalizadas para adaptarse a tus necesidades, y para los más expertos ofrece muchas opciones para construir aplicaciones web rápida y fácilmente.

Seagull posee una comunidad de desarrolladores activa y mucha documentación de soporte también.

Zend Framework, web: http://framework.zend.com/

Para muchos el mejor, puesto que lo consideran el único que tiene futuro, no solo porque es el oficial, sino porque va acompasando las nuevas versiones de PHP. ZF ya está pensado para php 6.

The Zend Framework posee un gran seguimiento entre la comunidad de desarrolladores y está enfocado a las aplicaciones tipo web 2.0.

Debido a su seguimiento masivo, soporte extensivo y base de usuario activa, Zend es conocido como “The PHP Company”. Zend podría considerarse el framework más popular de la actualidad. Posee propiedades importantes que están construidas para el desarrollo a nivel corporativo y requiere un gran conocimiento de PHP.

Zend Framework (ZF) es un framework de código abierto para desarrollar aplicaciones web y servicios web con PHP 5. ZF es una implementación que usa código 100% orientado a objetos.

La estructura de los componentes de ZF es algo único; cada componente está construido con una baja dependencia de otros componentes. Esta arquitectura débilmente acoplada permite a los desarrolladores utilizar los componentes por separado. A menudo se refiere a este tipo de diseño como «use-at-will» (uso a voluntad).

ZF ofrece un gran rendimiento y una robusta implementación MVC, una abstracción de base de datos fácil de usar, 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.

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.

Symfony, web: http://www.symfony-project.org/

Symfony está más bien enfocado a desarrolladores avanzados cuyo objeto principal son aplicaciones de nivel corporativo. Este framework open-source posee una gran cantidad de propiedades y puede hacer de todo, pero su mayor falla es que es un poco más lento que otros frameworks.

Codelgniter, web: http://www.codeigniter.com

Codelgniter es muy conocido por su utilización simple, desempeño y velocidad. A diferencia de Symfony, este framework es ideal para las cuentas de hosting compartidas o para cuando deseas un framework con una pequeña huella. Ofrece soluciones simples, y posee una extensa librería de videos tutoriales, foros, una guía de usuario y una wiki disponible. Los principiantes deberían realmente tenerlo en cuenta.

KumbiaPHP, Framework PHP en español, http://www.kumbiaphp.com

KumbiaPHP es un framework para aplicaciones web libre escrito en PHP5. Basado en las prácticas de desarrollo web como DRY (No repitas lo mismo) y el Principio KISS (realizarlo sencillo), para software comercial y educativo. Kumbiaphp fomenta la velocidad y eficiencia en la creación y mantenimiento de aplicaciones web, reemplazando tareas de codificación repetitivas por poder, control y placer.

KumbiaPHP Framework PHP intenta proporcionar facilidades para construir aplicaciones robustas para entornos comerciales. Esto significa que el framework es muy flexible y configurable.

KumbiaPHP es un esfuerzo por producir un framework que ayude a reducir el tiempo de desarrollo de una aplicación web sin producir efectos sobre los programadores.

Sus principales características son:

Sistema de Plantillas sencillo, Administración de Cache, Scaffolding Avanzado, Modelo de Objetos y Separación MVC, Soporte para AJAX, Generación de Formularios, Componentes Gráficos, Seguridad y muchas cosas más.

Adicional a esto KumbiaPHP integra lo mejor de la Web en un solo framework para producir las aplicaciones Web del mañana (prototypejs, phpMailer, Smarty, FPDF, Script.aculo.us)

Resumiendo:

Los frameworks PHP son una gran forma de reducir la necesidad de código repetitivo, acelerar el proceso de desarrollo y asegurar la codificación apropiada al crear aplicaciones web, tanto para desarrolladores avanzados como para principiantes.

Si bien algunos expertos PHP no sienten la necesidad de utilizar frameworks al construir aplicaciones web, estos pueden resultar una ventaja a la hora de necesitar desarrollar rápidamente un proyecto.

Y para los principiantes, los frameworks pueden mejorar el proceso de aprendizaje PHP, mientras promueven buenas prácticas de codificación.

Existen una gran cantidad de frameworks dando vueltas por la red de redes actualmente. Sólo debemos asegurarnos de seleccionar el que mejor se adapte a nuestras necesidades.

Como opinión personal, considero que sería aconsejable potenciar uno en español como KumbiaPHP.

 

 

 


Usted debe ser Registrado para publicar un cometario

Home Programación Frameworks en PHP y el patrón arquitectónico MVC
© www.palentino.es, desde el 2012 - Un Blog para compartir conocimientos ...

Uso de cookies en mi sitio palentino.es

Este sitio web utiliza cookies para que tengamos la mejor experiencia de usuario. Si continúas navegando estás dando tu consentimiento para la aceptación de las mencionadas cookies y la aceptación de la política de cookies

ACEPTAR
Aviso de cookies