[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