[TYPO3-mvc] Extbase: Past, Present & Future

Bastian Waidelich bastian at typo3.org
Tue Feb 15 18:28:04 CET 2011


Hi all,
For some days now I plan to write a little wrap up of the history and 
current state of Extbase - It turned out not to be too little in the 
end..  I hope, you’re not put off by the length!

Past:
-----
Probably most of you know the story of Extbase, but there might be some 
interesting facts you didn't.

It all started in 2006 with the kickstart of the TYPO3 Phoenix project 
and the decision to base it on a yet to be written PHP framework that 
was later called FLOW3.

In 2008 the TYPO3 core team gathered in Berlin for the "Transition Days" 
to create a common roadmap for TYPO3 v4 and v5 and to discuss 
possibilities to make the transition as smooth as possible.

Jochen Rau, who wasn’t part of the core team back then, was invited to 
join the meeting because he was working on an interesting project: 
"gimmefive" was a backport of some of the aspects of FLOW3 allowing 
developers to make use of ObjectManager, Object caching and Autowiring 
in their extensions. During those days in Berlin Jochen also implemented 
a first version of "thebridge" [2]. This experimental extension allows 
you to run FLOW3 inside TYPO3 v4.
The problem though, was that you had to initialize both frameworks with 
every request which is obviously quite expensive performance and memory 
wise. It was clear, that this could not be the official way to support 
the transition and it became obvious that we needed a replacement for 
pi_base.

Later that year Jochen and Sebastian Kurfürst started working on a 
backport of FLOW3. And even though a lot of people doubted the 
feasibility, they came up with the first version of Extbase a few months 
later (The first commit dates back to january 2009!).

Also on the Transition Days, Sebastian and me were thinking about a 
Templating Engine for Phoenix. It was clear, that the marker based 
approach is somewhat outdated and that we needed a solution that is more 
flexible. So we looked at different Templating Engines including Smarty 
and PHPTAL. Unfortunately they all shared some disadvantages: They 
weren’t coded completely object-oriented, had a complex or inconsistent 
syntax and were not extensible enough.
So Fluid was born on a whiteboard in Berlin.

At the T3BOARD09 Jochen demonstrated the first version of Extbase to the 
public and after some discussions we decided to integrate Fluid into 
TYPO3 4.3. So we came up with the infamous “Backporter”, a FLOW3 package 
that allows us to keep the Fluid package and extension in sync.


Present:
--------
Today the first beta of FLOW3 1.0 is in the pipeline and an alpha of 
TYPO3 5.0 can be tested at http://phoenix.demo.typo3.org.

Extbase & Fluid also evolved and are shipped in the version 1.3 with the 
current TYPO3 v4 release (4.5 LTS).

In the last years Jochen did an amazing job and I’m really sad that he 
can’t be the leader of the project anymore (you can read about the 
reasoning in his post from 3rd February).
When he asked me to take over the leadership of the Extbase project I 
agreed even though I know how tough the job is and how big the footsteps 
are that I’m stepping into. That is, because I’m totally convinced of 
Extbase and the idea behind it and I hope that it will encourage a lot 
of people to start working with FLOW3 & Phoenix, because both rock big time!

Most of the feedback regarding Extbase & Fluid is very positive, which 
is a big motivator – also for the v5 team around Robert Lemke and 
Karsten Dambekalns because it proves that their concept and ideas work 
out in "real life".

On the other hand, there are currently 74 open issues and 46 feature 
requests on forge [3] that are in urgent need of devotion...


Future:
-------
Obviously I can’t look into the future, but at least I can share my 
vision ;)

In my opinion Extbase is basically feature complete. That doesn’t mean, 
that we shouldn’t add new functionality. But the main focus should be to 
make Extbase more stable and to zap the gremlins as fast as possible.
IMO particularly form handling, property mapping and persistence needs 
improvement.

Besides there are a couple of side projects that we really want to push 
forward, especially because they’ll affect Phoenix and FLOW3 too. For 
example the Fluid Template Analyzer (FTA) [4], a templavoila-like 
mapping interface, the Extbase kickstarter [5] and a better widget 
integration.

As you can see, there is still a lot to do. More than we could deal with 
in a small team. So we really need the input from the community. That 
has been overwhelming so far and I’m really happy about the level of 
activity in this mailing list and about the many helping hands (I won't 
mention names now to avoid that I forget one or two, but you guys feel 
addressed).
Nevertheless I’m convinced that the collaboration can be improved.
We tried to leverage the power of the community some months ago by 
creating the “ViewHelper Incubator” project on forge [6]. It turned out, 
that it’s not used as much as we hoped for. Maybe also due to a lack of 
communication (I’m happy about feedback).

Recently Extbase & Fluid moved to Git and we have a great review tool 
called Gerrit [7]. This gives us a whole lot of new possibilities and I 
hope, that all of you hazard the learning curve – it’s worth it. Thanks 
to Karsten, there is already a lot of information about working with Git 
and Gerrit on forge [8]. But we definitely need to add more tutorials 
and maybe a set of tools like the little GitHelper I created a few days 
ago [9]. Those "interactive tutorials" could even go in a new section on 
the typo3.org site, what do you think?

With Git & Gerrit there is no need to fiddle around with patches and 
RFCs anymore. Instead feel free to push your suggested changes to 
review.typo3.org. And feel free to comment and/or vote changesets from 
others there.

Speaking of voting: The process of prioritizing issues on forge is 
sometimes a bit subjective because it’s not always easy to tell which 
bugs/features are the most relevant ones out there. So I was thinking 
about a voting functionality for forge issues. There are redmine plugins 
for that. What do you think?



Ok, before this turns into a novel, let me end with this:
Thank you all for the constructive feedback, patches and investigations 
- and please don't stop ;)
Please jump in at the deep end and try out Git & Gerrit. And never 
hesitate to ask if something is unclear!

And thank you Jochen for the fabulous job so far - I'm still hoping that 
your focus shifts back sometimes.. And bring Kasper with you ;)


May the code be with us
Bastian


[1] http://typo3.org/extensions/repository/view/gimmefive/current/
[2] http://forge.typo3.org/projects/show/extension-thebridge
[3] http://forge.typo3.org/projects/typo3v4-mvc/issues/report
[4] https://github.com/skurfuerst/fluid-firebug
[5] http://git.typo3.org/TYPO3v4/Extensions/extbase_kickstarter.git
[6] http://forge.typo3.org/projects/show/package-viewhelperincubator
[7] http://forge.typo3.org/projects/typo3v4-mvc/wiki/Working_with_git
[8] 
http://forge.typo3.org/projects/team-forge/wiki/Working_with_Git_and_Gerrit_Code_Review
[9] http://www.wwwision.de/githelper/


More information about the TYPO3-project-typo3v4mvc mailing list