A pri­n­ci­pios de 2006, la compañía de software Zend Te­ch­no­lo­gies (que ahora pertenece a Rogue Wave Software) publicó una versión prealfa del framework PHP Zend bajo la licencia libre BSD. Los fu­n­da­do­res de la empresa israelí fueron los de­sa­rro­lla­do­res Andi Gutmans y Zeev Suraski, que durante sus estudios en la Uni­ve­r­si­dad Técnica de Israel tra­ba­ja­ron, junto a otros es­tu­dia­n­tes, en el de­sa­rro­llo del lenguaje script PHP de Rasmus Lerdorf. Po­s­te­rio­r­me­n­te, Zend Te­ch­no­lo­gies se concentró en la mejora continua del lenguaje de código abierto y lanzó, entre otros, el in­té­r­pre­te PHP Zend Engine. Hasta la fecha, Zend Framework se ha de­s­ca­r­ga­do más de 15 millones de veces. Con la tercera versión publicada en julio de 2016, sucesora de Zend Framework 2.0 e in­co­m­pa­ti­ble con versiones an­te­rio­res, es posible crear apli­ca­cio­nes y servicios web basados en PHP 5.6 o su­pe­rio­res.

¿Qué es Zend Framework?

Gracias a sus amplios fu­n­da­me­n­tos, Zend Framework, el entorno de trabajo orientado a objetos, es la pla­ta­fo­r­ma de de­sa­rro­llo ideal para apli­ca­cio­nes web. La colección de paquetes PHP pro­fe­sio­na­les in­te­gra­dos en este framework re­pre­se­n­ta una he­rra­mie­n­ta de gran ayuda que ha llegado a im­pre­sio­nar a los de­sa­rro­lla­do­res más ex­pe­ri­me­n­ta­dos. Las funciones básicas se integran rá­pi­da­me­n­te y sin necesidad de grandes esfuerzos de pro­gra­ma­ción, lo que permite que el usuario se pueda co­n­ce­n­trar en la im­ple­me­n­ta­ción de las fu­n­cio­na­li­da­des de su propia apli­ca­ción. El framework utiliza Composer como gestor de paquetes, el entorno de pruebas unitarias PHPUnit y Travis CI, una he­rra­mie­n­ta de in­te­gra­ción continua que permite construir proyectos de GitHub y pu­bli­car­los au­to­má­ti­ca­me­n­te. Para el de­sa­rro­llo y la continua op­ti­mi­za­ción de este entorno de trabajo open source, Zend Te­ch­no­lo­gies ha recibido la ayuda de una activa comunidad PHP. Además, empresas como Google, Microsoft y Adobe, asociadas a Zend, ofrecen di­fe­re­n­tes in­te­r­fa­ces para sus servicios web.

¿Qué ofrece este framework de apli­ca­cio­nes web?

La in­s­ta­la­ción estándar de Zend Fra­me­wo­r­ks contiene más de 60 paquetes y, con la ayuda de Composer y de una línea de código simple, es fá­ci­l­me­n­te eje­cu­ta­ble. Si el paquete de in­s­ta­la­ción no está incluido en el gestor de paquetes de tu sistema operativo, puedes recurrir a su página web. Si lo prefieres puedes descargar paquetes in­di­vi­dua­les de este entorno de trabajo desde GitHub y uti­li­zar­los de acuerdo a tus ne­ce­si­da­des. Además, puedes pe­r­so­na­li­zar las si­guie­n­tes funciones de tu proyecto web con di­fe­re­n­tes co­m­po­ne­n­tes y clases:

  • Au­te­n­ti­ca­ción / Ad­mi­ni­s­tra­ción de usuarios
  • Acceso a la base de datos (CRUD)
  • Sistema de correo ele­c­tró­ni­co
  • Lo­ca­li­za­ción
  • In­de­xa­ción de búsqueda
  • Al­ma­ce­na­mie­n­to en caché
  • Captcha
  • Ar­qui­te­c­tu­ra MVC

La gran ventaja de Zend Framework consiste en que todos sus co­m­po­ne­n­tes han sido pro­gra­ma­dos para no depender de otros. Esta es­tru­c­tu­ra es la que hace posible escoger solo los módulos ne­ce­sa­rios para, de esta forma, lograr una pla­ta­fo­r­ma de de­sa­rro­llo acorde con las ne­ce­si­da­des in­di­vi­dua­les. Esto es lo que hace que también se hable de Zend como un framework “pegamento” (del inglés, glue). Así, si necesitas la poderosa ar­qui­te­c­tu­ra MVC, una interfaz CRUD para el acceso a la base de datos, opciones de au­te­n­ti­ca­ción para di­fe­re­n­tes grupos de usuarios o el paquete completo, con este framework se está bien equipado. El marco de pruebas PHPUnit te permite comprobar el progreso de la pro­gra­ma­ción activa y descubrir vu­l­ne­ra­bi­li­da­des y fallos de fu­n­cio­na­mie­n­to durante el proceso de de­sa­rro­llo. En sí mismo, Zend Framework no solo es una ar­qui­te­c­tu­ra muy flexible, sino que, además, casi todos sus co­m­po­ne­n­tes pueden ser im­ple­me­n­ta­dos en otros fra­me­wo­r­ks PHP como CakePHP o Symfony.

PHP como base de de­sa­rro­llo

Los di­fe­re­n­tes co­m­po­ne­n­tes de Zend Framework están basados en PHP, lo que lo convierte en una opción ideal para los pro­gra­ma­do­res que tienen pensado trabajar con este lenguaje de pro­gra­ma­ción. Este software de código abierto puede ser utilizado sin necesidad de adquirir una licencia de pago.

El alo­ja­mie­n­to web y la gestión de una apli­ca­ción PHP no implican grandes co­m­pli­ca­cio­nes, ni a nivel interno ni uti­li­za­n­do un proveedor externo, donde PHP es parte del re­pe­r­to­rio estándar. Gracias a que este entorno de trabajo se ha extendido am­plia­me­n­te dentro de la comunidad, es muy común en­co­n­trar­se con manuales de gran utilidad, foros de usuarios y ofertas de soporte en di­fe­re­n­tes idiomas creados por cientos de usuarios alrededor del mundo. Como ya hemos me­n­cio­na­do, los co­n­cie­n­cia­dos miembros de la comunidad y de­sa­rro­lla­do­res han de­sem­pe­ña­do un papel im­po­r­ta­n­te en el de­sa­rro­llo de Zend Engine y de Zend Framework. Desde la versión 3, este entorno de trabajo es co­m­pa­ti­ble con el script orientado al re­n­di­mie­n­to PHP 7, fa­ci­li­ta­n­do el de­sa­rro­llo de las apli­ca­cio­nes web más potentes. En co­m­pa­ra­ción con PHP 5.6, su sucesor oficial no solo duplica la velocidad, sino que también optimiza el re­n­di­mie­n­to de los proyectos web.

Los di­fe­re­n­tes factores que han influido en el de­sa­rro­llo de PHP no siempre han be­ne­fi­cia­do a la es­tru­c­tu­ra del lenguaje de script. A di­fe­re­n­cia de lenguajes con una filosofía clara como Ruby, la orie­n­ta­ción de PHP ha cambiado de manera constante. Ini­cia­l­me­n­te inspirado en Perl y más tarde en C, C++ y Java, el sector más crítico señala con fre­cue­n­cia la falta de uni­fo­r­mi­dad de este lenguaje. En pa­r­ti­cu­lar la de­sig­na­ción de las funciones y la or­ga­ni­za­ción de ar­gu­me­n­tos no resultan muy claras o in­tui­ti­vas. Por lo tanto, la paciencia es una virtud necesaria para los pro­gra­ma­do­res que quieran conocer a fondo este lenguaje de código abierto y, a la vez, que quieran im­ple­me­n­tar­lo co­rre­c­ta­me­n­te en el de­sa­rro­llo de su propia apli­ca­ción web. Al principio, trabajar con este lenguaje puede parecer simple, pero a medida que el usuario avanza en su apre­n­di­za­je, es­pe­cia­l­me­n­te debido a la falta de claridad en los conceptos, el proceso se puede tornar algo lento. Como co­n­se­cue­n­cia, la ar­qui­te­c­tu­ra de Zend Framework tiende a ser un obstáculo, es­pe­cia­l­me­n­te para pri­n­ci­pia­n­tes, pues si bien es cierto que los scripts te­r­mi­na­dos ahorran esfuerzos en términos de pro­gra­ma­ción, al comienzo puede resultar difícil de entender.

Zend Framework: es­ca­la­bi­li­dad y soporte técnico

Aunque PHP tiene de­bi­li­da­des es­tru­c­tu­ra­les que confieren una co­m­ple­ji­dad in­ne­ce­sa­ria en de­te­r­mi­na­dos puntos, para quienes han logrado dominarlo es, con razón, uno de los lenguajes de pro­gra­ma­ción de proyectos web del lado del servidor más eficaces. Con su framework, es­pe­cia­l­me­n­te para de­sa­rro­lla­do­res ex­pe­ri­me­n­ta­dos, Zend ha de­mo­s­tra­do ser una he­rra­mie­n­ta ideal para lograr un proceso de trabajo más rápido. Así, las funciones más im­po­r­ta­n­tes no solo pueden im­ple­me­n­tar­se fá­ci­l­me­n­te uti­li­za­n­do las clases y co­m­po­ne­n­tes en cualquier apli­ca­ción web, sino que pueden adaptarse có­mo­da­me­n­te a las ne­ce­si­da­des propias de cada proyecto. Adi­cio­na­l­me­n­te, para aumentar la fu­n­cio­na­li­dad del framework, es posible descargar diversos co­m­po­ne­n­tes ya mo­di­fi­ca­dos.

La asi­s­te­n­cia también es tan variada como las po­si­bi­li­da­des ofrecidas por Zend Framework. Como usuario, no solo te en­co­n­tra­rás con varios manuales online, tu­to­ria­les y se­mi­na­rios en su página web oficial, sino también con muchos pu­bli­ca­dos por los miembros de la comunidad Zend. Además, existen di­fe­re­n­tes listas de correo, canales IRC y foros en varios idiomas, de tal forma que si quieres saber cómo funcionan la ar­qui­te­c­tu­ra de la apli­ca­ción web y el lenguaje de pro­gra­ma­ción su­b­ya­ce­n­te PHP, dispones de material su­fi­cie­n­te. El soporte técnico de este framework también merece mención especial, pues Zend ha su­pe­r­vi­sa­do todo el proceso de de­sa­rro­llo de los co­m­po­ne­n­tes in­di­vi­dua­les y pro­po­r­cio­na asi­s­te­n­cia para cua­l­quie­ra de las pri­n­ci­pa­les versiones durante un período de tres años. En este plazo, es común que la empresa publique ac­tua­li­za­cio­nes re­gu­la­r­me­n­te para corregir errores y cubrir fallos críticos de seguridad.

Si descubres errores y vu­l­ne­ra­bi­li­da­des en Zend Framework, puedes co­mu­ni­car­las di­re­c­ta­me­n­te a través de GitHub Report o por correo ele­c­tró­ni­co.

¿A quién está destinada esta ar­qui­te­c­tu­ra PHP?

La di­ve­r­si­dad de proyectos en los que Zend Framework ha sido im­ple­me­n­ta­do ilustra su ve­r­sa­ti­li­dad. Algunas pla­ta­fo­r­mas basadas en este entorno de trabajo PHP son los sistemas de tienda online Magento y Shopware, el gestor de co­n­te­ni­dos Pimcore, la he­rra­mie­n­ta de análisis web Piwik y la apli­ca­ción de ge­nea­lo­gía web Webtrees. El esquema modular de este framework entra en juego, en pa­r­ti­cu­lar, en el sector de los CMS y los sistemas de tiendas online. El efecto se­cu­n­da­rio positivo es que en caso de cualquier problema, siempre habrá un gran número de personas a quien contactar. En general, se puede afirmar que, cuanto más pequeño sea el proyecto web, menores serán los be­ne­fi­cios y el nivel de utilidad ofrecidos por este entorno de trabajo. Si quieres crear una web co­r­po­ra­ti­va pequeña o una página personal, pro­ba­ble­me­n­te en­co­n­tra­rás otras so­lu­cio­nes que utilicen los recursos di­s­po­ni­bles de manera más eficiente. Las pre­fe­re­n­cias en cuanto al lenguaje de pro­gra­ma­ción también juegan un papel crucial, pues el uso de Zend Framework implica ne­ce­sa­ria­me­n­te la im­ple­me­n­ta­ción de PHP, incluso si utilizas elementos de otros entornos de trabajo. Mientras que los de­sa­rro­lla­do­res con más ex­pe­rie­n­cia deben aco­s­tu­m­brar­se a las si­m­pli­fi­ca­cio­nes o dedicarse a ellas, los usuarios con co­no­ci­mie­n­tos nulos se en­fre­n­ta­rán a mayores di­fi­cu­l­ta­des: por un lado, deberán aprender PHP y, por el otro, entender sus co­m­po­ne­n­tes pre­de­fi­ni­dos. De lo contrario no será posible hacer uso correcto del framework ni ajustarlo ade­cua­da­me­n­te al proyecto en sí.

Zend Framework: la columna vertebral flexible para proyectos PHP modernos

Si estás planeando programar una apli­ca­ción web basada en PHP y te gustaría ocuparte de cada línea de código por tus propios medios, tal vez Zend Framework no sea lo que estás buscando. Ahora bien, si por el contrario estás buscando un entorno de trabajo que te permita ahorrar tiempo durante el proceso de de­sa­rro­llo, vale la pena que le eches un vistazo a la pla­ta­fo­r­ma de de­sa­rro­llo Zend. Esta te fa­ci­li­ta­rá la creación de tu proyecto web mediante el uso de paquetes PHP pre­de­fi­ni­dos sin necesidad de escribir el código completo desde cero. Adi­cio­na­l­me­n­te, podrás elegir el sistema operativo y el servidor web li­bre­me­n­te gracias a que, como lenguaje de pro­gra­ma­ción es­ta­ble­ci­do, PHP es co­m­pa­ti­ble con cualquier pla­ta­fo­r­ma o software moderno.

Desde su tercera versión, Zend Framework es co­m­pa­ti­ble con PHP7, quien impulsa la velocidad de carga de las apli­ca­cio­nes creadas con el framework. Gracias a la gran comunidad de usuarios que pro­po­r­cio­nan asi­s­te­n­cia con lo re­s­pe­c­ti­vo al lenguaje de pro­gra­ma­ción y al entorno de trabajo, en caso de que surjan problemas o preguntas, estarás en muy buenas manos. Sin embargo, la extensión de su uso también implica que sea de gran atractivo para ci­be­r­cri­mi­na­les que buscan vu­l­ne­ra­bi­li­da­des no solo en Zend Framework, sino en las apli­ca­cio­nes de­sa­rro­lla­das con este. No obstante, esto no se convierte en un obstáculo in­su­pe­ra­ble, pues los servicios de apoyo y asi­s­te­n­cia ofrecidos por el equipo de de­sa­rro­llo facilitan la escritura de un código limpio y seguro que sea lo su­fi­cie­n­te­me­n­te coherente para prevenir ataques po­te­n­cia­les. Además, los usuarios del framework pueden notificar posibles vu­l­ne­ra­bi­li­da­des, de tal forma que se so­lu­cio­nen lo más rápido posible.

Ir al menú principal