Neos Flow
Neos Flow
|
|
---|---|
Basic data
|
|
developer | Robert Lemke, The Neos Project |
Current version |
6.1.2 ( January 15, 2020 ) |
operating system | platform independent |
programming language | PHP |
category | Web framework |
License | MIT ( Free Software ) |
German speaking | Yes |
flow.neos.io |
Neos Flow (formerly Typo3 Flow ) is a free web framework written in PHP , the first version of which was released in 2011. It was developed primarily as the basis for the Typo3 Neos content management system , but can also be used independently of it.
history
In 2006 the first considerations were made about a successor to Typo3 and thus also about Typo3 Flow.
Robert Lemke and Karsten Dambekalns have been working full-time on the further development of Typo3 Flow since 2007. In the same year specific efforts began to develop a new CMS with the code name "Phoenix", for which a refactoring of the core was initially planned. However, it quickly became clear that new concepts would have required extensive changes that could ultimately have jeopardized the stability of the system. So it was decided to part with the old code base for the new version , which is rooted in the beginnings of Typo3 and is partly not object-oriented .
The aim was to create a modern and future-proof basis for further Typo3 versions. Along with the use of modern concepts, techniques and design patterns, the developers initially had to contend with problems with the implementation of namespaces, which was newly introduced in PHP 5.3 and was still buggy at the time .
In June 2009 the first alpha version appeared with FLOW3 1.0.0 . The final version was published in October 2011. The system is currently used by several large corporations in Germany. In October 2012 it was announced that FLOW3 will be further developed under the name Typo3 Flow in the future.
Typo3 Flow serves as the foundation for the CMS project Neos (formerly Phoenix) originally planned as Typo3 5.0 .
In May 2015, in agreement with the Typo3 Association, it was decided to split the Neos project into an independent development and then carried out step by step.
In June 2015, the license for the framework was changed from the LGPL , version 3 or higher to the MIT license .
From January 2017 the new name Neos Flow was used.
Paradigms
The developers of Typo3 Flow rely on a number of paradigms and design patterns , some of which are to be regarded as innovative in the PHP scene. These conventions help the programmer to program properly and avoid errors. The most important are:
- MVC
- Aspect-oriented programming
- Domain-driven design
- Dependency injection
- Test-driven development
- Signal slot concept
When programming Typo3 Flow, care was taken to ensure that self-written code has only minimal dependencies on the Typo3 Flow API. This means that modules that were originally written for other systems (such as Symfony ) can be used with Typo3 Flow with little effort. In this way, self-written code can in many cases continue to be used without adjustments even if the Typo3 Flow code base is changed.
Typo3 Flow is based on some basic principles that are transparent for the user and make his work as easy as possible. So the user can z. E.g. display customer information by writing just three or four lines of PHP code and creating a fluid template with HTML code. If the user has followed the conventions, the Typo3 Flow Framework automatically applies its features to the code (e.g. its security baselines).
Fluid template engine
Typo3 Flow has its own template engine called Fluid . Although a number of template engines already exist, none of them met the needs of the developers. When designing Fluid, the main focus was on the following properties:
- Support of logic (like conditions , loops or iteration over arrays )
- Ban on PHP code in the template file
- Easy expandability
- Simple syntax
- XML structure to enable automated validation of templates
An example:
<f:for each="{blogPosts}" as="post">
Title: {post.title}<br />
</f:for>
blogPosts is a PHP array that must be passed to Fluid in the PHP code. With this example, you can iterate over this array in the template and output the title of each post object.
The tags that can be used to control and manipulate the output in the template are called view helpers . The ability to develop View Helper yourself relatively easily makes Fluid expandable.
A download link for a filereference can be implemented with the following code, for example:
<a href="{f:uri.typolink(parameter: fileReference.originalResource.publicUrl)}" download>
Download
</a>
development
On June 2nd, 2009 the first build was released with FLOW3 1.0.0 Alpha 1 .
In the period that followed, a total of 14 alpha versions were released approximately monthly until FLOW3 was ready for the beta phase in August 2011. In this early stage of development, the API naturally changed; sometimes in such a way that it is not backwards compatible.
For a long time, the FLOW3 team consisted of about eleven developers who were actively working on the framework. There were also so-called early adopters who were already using the system for a wide variety of purposes and who gave feedback.
On October 20, 2011, a good two years after the first alpha version was released, the final version 1.0.0 was released.
The Neos project has been organized in teams since October 2015 and now consists of 24 members divided into three teams. Each team is theoretically able to continue the entire project independently and the teams organize themselves through selected so-called "synchronizers" and retrospective meetings. In addition, regular sprints take place in which team-wide development is driven forward in a focused manner.
With the release of version 3.0 in August 2015, the project committed itself to a quarterly release cycle synchronized with the Neos CMS.
In August 2016, the first long-term support version 3.3 was released, which promises support with bug fixes until August 2018 and extended security support until August 2019.
Major versions
Legend: | Older version; no longer supported | Older version; still supported | Current version | Future version |
---|
Package name | version | sub version |
publication | Most important changes |
---|---|---|---|---|
FLOW3 | 1.0 | 1.0.0 Alpha 1 | June 2, 2009 | First alpha version released; subsequently various alpha, beta and RC releases. |
1.0.0 | October 20, 2011 | Release of version 1.0.0. Typo3 Flow should serve as the foundation for the planned Typo3 Neos . | ||
1.1 | 1.1.0 | August 24, 2012 | Improvement of the performance, expansion of the package repository. The Package Repository is a marketplace for extensions comparable to the Typo3 TER. Cookie management, content negotiation for media types, cache headers and expiration models as well as a virtual HTTP client for test scenarios are now available. Likewise, internationalization using translation files in XLIFF format on a package basis. | |
Typo3 Flow | 2.0 | 2.0.0 | 12th of July 2013 | Localization of the framework (e.g. objects, labels, URLs ...) |
2.0.1 | December 10, 2013 | Security update | ||
2.1 | 2.1.0 | December 10, 2013 | ||
2.2 | 2.2.0 | June 23, 2014 | Bug fixes, performance optimizations, improved exception output, new ViewHelper and support for HTML5 data attributes for the template engine Fluid, adaptation of the tests to PHPUnit 4.1 | |
2.3 | 2.3.16 | November 14, 2014 | ||
3.0 | 3.0.10 | 11th August 2015 | ||
3.1 | 3.1.8 | December 15, 2015 | ||
3.2 | 3.2.9 | 4th May 2016 | ||
3.3 LTS | 3.3.8 | 22nd August 2016 | First long-term support version, configuration through environment variables, "Trusted Proxies" configuration, Doctrine ORM 2.5, PHP 7.0 type declarations | |
Neos Flow | 4.0 | 4.0.1 | January 30, 2017 | New "Neos" namespace, PHP 7.1 support, no more PHP 5.x support, PSR-4 autoloading as standard, standalone fluid |
The current development status can be followed in the Git repository and in the bug tracker .
Connection with Typo3
initiative
Typo3 Flow was initiated by the Typo3 community and is mainly developed by Typo3 core developers. The primary goal is to create a basis for the new CMS Typo3 Neos. The development and publication of Typo3 Flow was funded by the Typo3 Association until 2015 . In May 2015 the Flow / Neos developers and the Typo3 Association decided to separate both projects and to continue to run Flow / Neos independently
Approaching Typo3 CMS
To make it easier for the community to switch and migrate modules from Typo3 CMS (versions 4 and 6) to Typo3 Flow, many of the technologies used in Typo3 Flow have been ported since Typo3 4.3 . This also includes the Fluid template engine developed in the course of Typo3 Flow . An example extension based on Extbase demonstrated the possibility of using paradigms such as MVC or domain-driven design in practice with the publication of Typo3 4.3 .
In addition, the new concepts can be tested on the widespread 4.x branch of Typo3, which facilitates the later porting to Neos.
This approach of Typo3 CMS to Typo3 Flow was decided at the Transition Days 2008 in Berlin. In 2012 the renaming of FLOW3 to Typo3 Flow was announced. The developers want to focus on the Typo3 brand and make the relationship to the CMS clearer.
In the meantime this approach has been abandoned and Flow is developed under the name "Flow Framework" independently of Typo3.
literature
- Relaunch based on Typo3 Flow , web & mobile DEVELOPER No. 12, 2012.
- Clash of the Giants , t3n No. 27, 2012.
- News from FLOW3. , Cover story in PHP Magazine No. 1, 2012.
- Security First! , PHP Magazine No. 4, 2011.
Web links
Individual evidence
- ↑ a b c d e f g h i Robert Lemke: Robert Lemke in an interview on FLOW3. In: heise developer. Retrieved October 22, 2011 .
- ↑ T3DD06 TYPO3 5.0 Brainstorming Results , 2006.
- ↑ Karsten Dambekalns: TYPO3 5.0 - T3CON08, T3TD08 and the "Berlin Manifesto". In: t3n magazine . Retrieved December 20, 2009 .
- ↑ TYPO3 roadmap. Archived from the original on October 25, 2012 ; Retrieved October 5, 2012 .
- ↑ a b Official separation of TYPO3 and Flow / Neos. May 18, 2015, accessed February 24, 2016 .
- ↑ Alexander book: An enterprise feature transferred into the PHP world: Aspect-oriented programming with FLOW3. (No longer available online.) In: t3n magazine . December 3, 2008, archived from the original on March 10, 2009 ; Retrieved October 5, 2012 . Info: The archive link was inserted automatically and has not yet been checked. Please check the original and archive link according to the instructions and then remove this notice.
- ↑ Sebastian Kurfürst: New template engine for FLOW3 and TYPO3 4.x: Fluid - Templating made easy. In: t3n magazine. November 30, 2009. Retrieved October 5, 2012 .
- ↑ FLOW3 - TYPO3's PHP Application Framework. Archived from the original on June 17, 2009 ; Retrieved October 5, 2012 .
- ↑ Release Notes of FLOW3beta1 ( Memento of the original from January 9th, 2012 in the Internet Archive ) Info: The archive link was inserted automatically and has not yet been checked. Please check the original and archive link according to the instructions and then remove this notice. , accessed October 22, 2011
- ^ Minutes Neos Team Forming Meeting. Retrieved February 25, 2017 .
- ↑ Teams - Community - Neos.io. Retrieved February 25, 2017 .
- ↑ Release Roadmap - Features - Neos.io. Retrieved February 25, 2017 .
- ↑ a b Neos 2.3 LTS and Flow 3.3 LTS released . August 22, 2016 ( neos.io [accessed February 23, 2017]).
- ↑ Information on the support cycle for Neos Flow versions. Retrieved February 23, 2017 .
- ↑ a b c d Information on downloading FLOW3. (No longer available online.) Archived from the original on September 15, 2012 ; accessed on September 7, 2015 . Info: The archive link was inserted automatically and has not yet been checked. Please check the original and archive link according to the instructions and then remove this notice.
- ↑ Release announcement of FLOW3 1.0 accessed on October 11, 2011
- ↑ heise.de accessed on October 21, 2011
- ↑ a b c d e FLOW3 roadmap. Retrieved October 5, 2012 .
- ↑ heise.de accessed on August 28, 2012
- ↑ flow.typo3.org ( Memento of the original from January 13, 2016 in the Internet Archive ) Info: The archive link was inserted automatically and has not yet been checked. Please check the original and archive link according to the instructions and then remove this notice. Retrieved June 24, 2014
- ↑ Neos 2.2 and Flow 3.2 released . May 4, 2016 ( neos.io [accessed February 23, 2017]).
- ↑ Neos 3.0 and Flow 4.0 Released . January 30, 2017 ( neos.io [accessed February 23, 2017]).
- ↑ github
- ↑ github / issues
- ↑ Jens Ihlenfeld: Typo3 4.3 paves the transition to Typo3 v5. In: Golem . November 30, 2009. Retrieved October 5, 2012 .
- ↑ Typo3 4.3 is here. In: heise online . November 30, 2009. Retrieved October 5, 2012 .
- ^ A Blog Example for the Extbase Framework. Retrieved October 5, 2012 .
- ↑ Oliver Hader: TYPO3 4.3 - Innovations for users and developers briefly presented. In: T3n magazine . No. 18, 2009, p. 106.
- ↑ A Common Roadmap for TYPO3. Retrieved October 5, 2012 .
- ↑ Jochen Rau: The future of extension development. In: T3n magazine . Retrieved December 20, 2009 .
- ↑ Jan Christe: TYPO3 5.0 Phoenix becomes "TYPO3 Neos". (No longer available online.) In: t3n magazine . October 5, 2012, archived from the original on October 7, 2012 ; Retrieved October 5, 2012 . Info: The archive link was inserted automatically and has not yet been checked. Please check the original and archive link according to the instructions and then remove this notice.