Proyecto Laminas: la nueva versión de Zend Framework

noviembre 28, 2020
A comienzos del 2019 la comunidad de Zend Framework migró su código base a GitHub, lo que marcó el inicio del Proyecto Laminas.
En un principio Zend Framework era dirigido y patrocinado por Zend Technologies, y después pasó a manos de Rogue Wave Software. Ahora con la reciente transición, estará bajo la dirección de un Comité Directivo Técnico independiente y se regirá por un estatuto definido por la Fundación Linux.
Zend Framework ha logrado obtener una vasta adopción en el ecosistema PHP, con mayor peso en el ámbito empresarial. Ha desarrollado la base para incontables servicios y aplicaciones comerciales, tales como gestión de contenido, plataformas de comercio electrónico, sistemas de atención médica, servicios de mensajería, plataformas y portales de entretenimiento, y API entre muchos otros. El ahora conocido como «Proyecto Laminas», continuará proveyendo a los usuarios de PHP que edifican estas aplicaciones.
¿En qué consiste el Proyecto Laminas?
El Proyecto Laminas consiste en una continuación de Zend Framework con código abierto, un marco PHP, y una biblioteca de componentes enfocada en aplicaciones empresariales.
Laminas comprende los siguientes proyectos:
- Componentes Laminas y MVC.
- Mezzio, un tiempo de ejecución de middleware PHP y varios componentes y extensiones del tiempo de ejecución.
- Laminas API Tools, un generador y motor de API, construido sobre el tiempo de ejecución de Laminas MVC.
Como parte de la evolución del Proyecto Laminas, Zend Framework así como todos los subproyectos que lo componen, han sido transferidos a la Fundación Linux.
La Fundación Linux cobija una amplia cantidad de proyectos de gran éxito y de código abierto, y tiene experiencia con transiciones de este tipo. El equipo de Laminas confía en que este paso y cambio de modelo de gobierno, les permitirá enfocarse en brindar un código innovador que llegue a ser catalogado como el mejor, haciendo uso de los más exigentes estándares de transparencia, seguridad y calidad.
Actualmente, el equipo de Laminas se encuentra trabajando en un nuevo modelo de proyecto financiado, que involucra a una Junta de Gobierno que se encargará de la comercialización del proyecto, del desarrollo de la financiación y de asociaciones, entre otros.
Las personas interesadas en contribuir con el objetivo de Laminas, de convertirse en un modelo de proyecto, pueden comunicarse con los integrantes del equipo para conocer más sobre la membresía, sus beneficios y cómo tu empresa puede ayudar a que el ecosistema del proyecto crezca.
Los cambios implícitos en el Proyecto Laminas
Debido a la migración y a todo lo que esta implica, el equipo de Laminas se vio en la necesidad de diferenciar el nuevo proyecto de la marca Zend. Y para lograrlo ha implementado nuevos nombres.
La palabra «Laminas» es el plural del vocablo «lámina», cuyo significado es capa delgada. Los creadores consideran que este nombre representa de manera breve, los objetivos que el proyecto tiene:
- Componentes que se pueden componer o superponer en cualquier aplicación.
- Las arquitecturas de middleware a menudo se denominan en capas.
El Proyecto Laminas abarcará lo siguiente:
- Los distintos componentes independientes.
- El marco MVC.
- El subproyecto Apigility, que pasa a ser Laminas API Tools.
- El subproyecto Expressive, que pasa a ser Mezzio.
Gobernabilidad
Hoy en día, Laminas se encuentra dirigido por un Comité Directivo Técnico (TSC). Este comité se encarga de tomar las decisiones concernientes a todo el proyecto, desde lo respectivo a las finanzas hasta lo que tiene que ver con marketing.
El TSC tiene como objetivo principal, tomar las mejores decisiones sobre lo que se mantendrá, en qué trabajarán, los accesos y la dirección general de Laminas.
Una vez que el proyecto sea financiado y avance como tal, se contará con dos entes de dirección: el ya mencionado TSC y una Junta de Gobierno. Para ese momento, el TSC continuará con la responsabilidad de las decisiones de ámbito técnico, y la Junta de Gobierno se encargará de lo respectivo a la comercialización y marketing de Laminas.
Por otro lado, también se espera contar con un equipo de desarrolladores quienes se encargarán del mantenimiento, de la administración de la automatización, de la presencia web, así como otras tareas necesarias. Este equipo también colaborará con la continuidad del Proyecto Laminas.
¿Qué pasará con Zend Framework?
Cada uno de los componentes de Zend Framework, incluido el tiempo de ejecución de MVC, han sido reubicados a una nueva organización denominada «Laminas» en GitHub.
Estas migraciones también han sido ejecutadas:
- Los paquetes de Apigility se han trasladado de la organización zfcampus a la organización Laminas API Tools.
- Los paquetes Expressive se han trasladado a la organización Mezzio.
Por otro lado, se han archivado todos los repositorios existentes. Lo que se traduce como que seguirán disponibles en GitHub, pero solo para lectura. De esta forma las instalaciones existentes podrán continuar operando sin problemas, a la vez que se deja en claro que el desarrollo ha sido trasladado a los nuevos proyectos. Por su parte, las entradas de paquetes vinculados en Packagist han sido marcadas como obsoletas y apuntan a los nuevos paquetes relevantes como alternativas.
Cada paquete nuevo publicado por el Proyecto Laminas, ha sido marcado como reemplazo de los paquetes Zend Framework existentes, e incluye herramientas para determinar un alias a las clases heredadas a las nuevas clases de paquetes. Esto facilita una perfecta integración en los proyectos existentes, incluso al utilizar bibliotecas de terceros que aprovechan el código ZF.
Por último, el equipo del Proyecto Laminas proporciona herramientas para la actualización de tu propio código para que use las nuevas clases generadas por los paquetes de Laminas. También proporciona las herramientas que te ayudarán a actualizar tus dependencias para utilizar los nuevos paquetes de Laminas en sustitución de las versiones de Zend Framework. Esto se proporciona como una combinación de un complemento Composer, posprocesadores de configuración para aplicaciones MVC y Mezzio, y la herramienta de migración de láminas.