Flow (anteriormente conocido como TYPO3 Flow o FLOW3 ) es un framework de aplicaciones web gratuito y de código abierto escrito en PHP . La primera versión final se publicó el 20 de octubre de 2011. Fue diseñado principalmente como base para el sistema de gestión de contenido Neos , pero también se puede utilizar de forma independiente. En general, es adecuado para el desarrollo en PHP de aplicaciones web de escala media o grande.
En 2006, los desarrolladores del sistema de gestión de contenidos TYPO3 decidieron reescribir el sistema desde cero. La arquitectura y la tecnología subyacente de la rama 4.x eran de última generación después del cambio de milenio. Aunque el sistema se ha desarrollado más desde su lanzamiento en abril de 2006, los desarrolladores acordaron la demanda de un rediseño completo del código para cumplir con los estándares modernos. [2] [3] [4] Flow evoluciona a partir de esta decisión como un marco discreto e independiente que se puede utilizar independientemente de TYPO3.
El 29 de agosto de 2011, los desarrolladores anunciaron el lanzamiento de la primera versión beta después de "8 meses de duro trabajo". [5]
En la conferencia internacional TYPO3 Conference 2011 (T3CON11) en Hanau, Alemania, Robert Lemke, desarrollador jefe de la próxima versión de "próxima generación" de TYPO3, anunció el lanzamiento de la versión final de Flow el 20 de octubre. [6]
En la Conferencia internacional TYPO3 2012 (T3CON12), TYPO3 se anunció como una marca familiar. [7] Posteriormente, todos los nombres de productos del proyecto TYPO3 comienzan con TYPO3 y, como "TYPO3 Flow3" no es fácil de pronunciar ni coincide con el nombre de los otros productos, se cambió el nombre a "TYPO3 Flow".
Más tarde, cuando los proyectos NEOS y TYPO3 tomaron caminos diferentes, "TYPO3 Flow" pasó a llamarse "Flow" como parte del proyecto NEOS. [8]
Neos Flow proporciona la base de la Plataforma de Aplicaciones de Contenido Neos, pero también puede utilizarse de forma independiente, es decir, para crear aplicaciones propias, como un sistema de blogs, comercio electrónico y/o tareas similares. En el contexto de la documentación de Flows, se utiliza un sistema de blogs para visualizar los distintos paradigmas de Flow, como el modelo-vista-controlador (MVC), la programación orientada a aspectos o el diseño impulsado por el dominio (DDD). El sistema utiliza espacios de nombres y, por lo tanto, depende de PHP 5.3+. Utiliza Doctrine 2 como capa de abstracción de bases de datos y puede interactuar con, por ejemplo, MySQL y PostgreSQL.
Los desarrolladores de TYPO3 Flow se centraron en una serie de paradigmas y patrones de diseño , algunos de los cuales se consideran innovadores dentro de la comunidad PHP. Estas convenciones ayudan a los desarrolladores a crear código limpio y estructurado de manera eficaz y a evitar errores [3] . Algunos aspectos importantes son:
Al diseñar TYPO3 Flow, los desarrolladores prestaron atención a que su código personalizado tuviera dependencias mínimas de la API de TYPO3 Flow. Esto permite a los usuarios importar y usar módulos que fueron escritos originalmente para otros sistemas (como Symfony ) para ser utilizados en TYPO3 Flow con muy pocas modificaciones. [3]
TYPO3 Flow se basa en conceptos básicos y transparentes para que trabajar con él sea lo más sencillo posible. Así, por ejemplo, el usuario puede mostrar información de clientes escribiendo sólo tres o cuatro líneas de código fuente PHP en una plantilla Fluid con código HTML. Cuando se siguen exactamente las convenciones, el framework aplica automáticamente sus características al código (por ejemplo, las líneas base de seguridad).
Como nota al margen, la comunidad WCMS de Java también ha estado prestando atención al desarrollo de TYPO3 Neos y TYPO3 Flow , por su arquitectura moderna y su base de código transparente [3] [10]
El 2 de junio de 2009 se publicó la primera versión , denominada FLOW3 1.0.0 Alpha 1 [11]. En el período siguiente se publicaron unas 14 versiones alfa, hasta que FLOW3 estuvo listo para la fase beta en agosto de 2011. [12] En esta etapa temprana de desarrollo, la API no ha cambiado, para garantizar la compatibilidad con versiones anteriores . El equipo central de TYPO3 Flow actualmente consta de once desarrolladores que trabajan activamente en el marco. [3]
TYPO3 Flow fue iniciado por la comunidad TYPO3 y está desarrollado principalmente por el equipo central de TYPO3. El objetivo principal es crear una base para el próximo CMS TYPO3 Neos . El desarrollo y la publicación están financiados, como todos los subproyectos de TYPO3, por la Asociación TYPO3.
La mayoría de las nuevas características de TYPO3 Flow se han adaptado para su uso con versiones anteriores de TYPO3 (4.3 y superiores) para proporcionar una transición fluida hacia o desde TYPO3 CMS . Estas funciones se han integrado en la extensión del sistema Extbase y el motor de plantillas Fluid relacionado . Por lo tanto, los conceptos de diseño basado en dominios y MVC se pueden utilizar dentro de TYPO3 CMS y, posteriormente, trasladarse a sistemas que ejecuten TYPO3 Neos .
Estas convenciones se acordaron durante los Días de Transición de 2008 en Berlín. [17] Otro resultado de esto es el cambio de nombre de FLOW3 a TYPO3 Flow , que fue decidido por la asociación TYPO3 en 2012. La asociación quería aclarar que existe una fuerte relación entre el CMS y el marco de la aplicación. [18]
TYPO3 Flow tiene su propio motor de plantillas llamado Fluid . [19] Aunque ya existían numerosos motores de plantillas , ninguno de ellos satisfacía los requisitos de los desarrolladores. Al diseñar Fluid, se centraron en las siguientes características:
Ejemplo:
<f:for each= "{blogPosts}" as= "post" > Título: {post.title} <br /> </f:for>
blogPosts es una matriz PHP que se pasa a fluid desde un código PHP externo (ViewHelper). La plantilla itera sobre esta matriz e imprime el título de cada objeto de publicación .
Las etiquetas que se utilizan en la plantilla se denominan ViewHelper . La capacidad de desarrollar ViewHelpers personalizados convierte a Fluid en un sistema de plantillas flexible y ampliable.
{{cite web}}
: CS1 maint: bot: estado de URL original desconocido ( enlace )