Skip to content

Commit

Permalink
First commit of the current work status
Browse files Browse the repository at this point in the history
git-svn-id: https://svn.typo3.org/TYPO3v4/Documentation/book_extbase_fluid/trunk@871 709f56b5-9817-0410-a4d7-c38de5d9e867
  • Loading branch information
fab1en committed Jul 5, 2011
1 parent f90720a commit 15c812c
Show file tree
Hide file tree
Showing 73 changed files with 8,357 additions and 0 deletions.
134 changes: 134 additions & 0 deletions 0-introduction/1-short-history.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
<?xml version="1.0" encoding="UTF-8"?>
<section version="5.0" xmlns="http://docbook.org/ns/docbook"
xmlns:xl="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:ns="http://docbook.org/ns/docbook"
xmlns:mathml="http://www.w3.org/1998/Math/MathML">
<title>A short history of Extbase and Fluid</title>

<para>After the implementation of TYPO3 v5 and FLOW3 as the basis framework
started, the development of TYPO3 v4 and TYPO3 v5 was happening almost
completely independent from each other. In October 2008, the core developers
of both branches met for the <emphasis>TYPO3 Transition Days</emphasis> in
Berlin. There, the developers wanted to work on a common vision and strategy
for the transition from the current TYPO3 version 4 to the coming version 5.
The core points of this strategy were communicated as a manifesto (see the
box "The Berlin Manifesto").</para>

<sidebar>
<title>The Berlin Manifesto</title>

<para>We, the participants of the TYPO3 Transition Days 2008 state that
…</para>

<itemizedlist>
<listitem>
<para>TYPO3 v4 continues to be actively developed</para>
</listitem>

<listitem>
<para>v4 development will continue after the release of v5</para>
</listitem>

<listitem>
<para>Future releases of v4 will see its features converge with those
in TYPO3 v5</para>
</listitem>

<listitem>
<para>TYPO3 v5 will be the successor of TYPO3 v4</para>
</listitem>

<listitem>
<para>Migrtion of content from TYPO3 v4 to TYPO3 v5 will be easily
possible</para>
</listitem>

<listitem>
<para>TYPO3 v5 will introduce many new concepts and ideas. Learning
never stops and we'll help with adequate resources to ensure a smooth
transition.</para>
</listitem>
</itemizedlist>

<para>Signed by:</para>

<para><emphasis>Patrick Broens, Karsten Dambekalns, Dmitry Dulepov,
Andreas Förthner, Oliver Hader, Martin Herr, Christian Jul Jensen,
Thorsten Kahler, Steffen Kamper, Christian Kuhn, Sebastian Kurfürst,
Martin Kutschker, Robert Lemke, Tobias Liebig, Benjamin Mack, Peter
Niederlag, Jochen Rau, Ingo Renner, Ingmar Schlecht, Jeff Segars, Michael
Stucki, Bastian Waidelich</emphasis></para>
</sidebar>

<para>With the background of this manifesto, the decision was made to
re-implement two parts of TYPO3 v4:</para>

<itemizedlist>
<listitem>
<para>A modern successor for the base class
<classname>tslib_piBase</classname>, on which by now the majority of the
3600 extensions for TYPO3 builds on. From there, Extbase emerged.</para>
</listitem>

<listitem>
<para>A new template engine for outputting data, which connects
flexibility, ease of use and extensibility: Fluid.</para>
</listitem>
</itemizedlist>

<para>Discussions about the new template engine started already on the
Transition Days, where Bastian Waidelich and Sebastian Kurfürst discussed
how such a new template engine should work and behave. Shortly after, a
prototype was implemented. The development of Extbase began two months
later, when a few core members met in Karlsruhe. There, they agreed on
staying as close as possible to the concepts, the architecture and the APIs
of FLOW3.</para>

<para>After that followed an intensive development phase, where Jochen Rau
developed the biggest part of Extbase, while Sebastian Kurfürst did code
reviews and gave feedback. Additionally, Fluid has reached the beta stage in
that time.</para>

<para>The first public presentation of Extbase happened in March 2009 at the
<emphasis>T3BOARD09</emphasis> in Laax (CH). With stormy weather, 2228 m
over sea level, core developers and interested people could see the current
state of Extbase. In a stimulated discussion<remark>TODO: sounds
strange</remark>, the last open topics like naming conventions or the name
of the framework, were decided upon. Additionally, the decision was made to
include Fluid in version 4.3, instead in version 4.4 as planned
before.</para>

<para>In the following days, the Fluid team developed a small program (named
<emphasis>Backporter</emphasis>) which could take the code of Fluid for
FLOW3, and transform it to code for TYPO3 v4. That's how the first working
version of Fluid vor TYPO3 v4 came into being at the end of the T3BOARD09.
Additionally, it was now pretty easy to keep Fluid for FLOW3 in sync with
Fluid for TYPO3 v4.</para>

<para>The first real presentation of Extbase and Fluid happened in April
2009 on the american <emphasis>TYPO3 Conference</emphasis> in Dallas, and a
month later on the <emphasis>TYPO3 Developer Days</emphasis> in Elmshorn
near Hamburg. After that, a lot of positive feedback and constructive
criticism emerged from the community.</para>

<para>During the next months, a lot of work was done to clean up the
details: The syntax of Fluid was improved, ViewHelpers were written, and the
persistence layer of Extbase was improved and refactored multiple times.
Functionalities for the security of the framework were implemented, the MVC
framework was cleaned up, and more functionalities were implemented which
were needed for practical usage.</para>

<para>At the <emphasis>T3CON09</emphasis> in autumn 2009, Extbase and Fluid
could be presented as a beta version. Afterwards, only errors were
corrected, but no new functionalities were implemented. With the release of
TYPO3 4.3.0 in November 2009, Extbase and Fluid were included in the TYPO3
core and are thus available in every TYPO3 installation.</para>

<para>After a well-deserved break of the development team after the release,
work started again with smaller bugfixes and a roadmap for upcoming
functionalities. That's how many details of the framework were improved, and
the persistence layer was once again streamlined and cleaned up.</para>
</section>
37 changes: 37 additions & 0 deletions 0-introduction/2-target-audience.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<section version="5.0" xmlns="http://docbook.org/ns/docbook"
xmlns:xl="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:ns="http://docbook.org/ns/docbook"
xmlns:mathml="http://www.w3.org/1998/Math/MathML">
<title>Target Audience</title>

<para>This book is for TYPO3 extension developers who have basic knowledge
in PHP programming and in working with and administering TYPO3. It gives a
compact introduction into the Extbase framework and the Fluid template
engine. We are striving for the following target audiences:</para>

<itemizedlist>
<listitem>
<para>Beginners, who want to use Extbase and Fluid right from start as a
basis for own extensions</para>
</listitem>

<listitem>
<para>Experienced developers, who want to learn Extbase and Fluid before
a new project</para>
</listitem>

<listitem>
<para>Developers, who want to port their existing extensions early to
FLOW3</para>
</listitem>

<listitem>
<para>Deciders, who want to gain a technical overview over the new
framework.</para>
</listitem>
</itemizedlist>
</section>
79 changes: 79 additions & 0 deletions 0-introduction/3-structure.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
<?xml version="1.0" encoding="UTF-8"?>
<section version="5.0" xmlns="http://docbook.org/ns/docbook"
xmlns:xl="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:ns="http://docbook.org/ns/docbook"
xmlns:mathml="http://www.w3.org/1998/Math/MathML">
<title>Structure of this book</title>

<para>This chapter is structured into ten chapters and three appendixes. The
chapters discuss the following topics:</para>

<para>Chapter 1, <emphasis>Installation</emphasis>, leads you through the
installation of Extbase and Fluid. To make extension development most
effective, we give suggestions for development environments and tips and
tricks for debugging.</para>

<para>Chapter 2, <emphasis>Basic principles</emphasis>, begins with an
overview about the concepts of object oriented programming, because these
are essential for working with Extbase. After that, we dive into
Domain-Driven Design, a programming paradigm which is supported optimally by
Extbase. After that, you'll learn the design pattern Model-View-Controller,
which is the technical basis of every Extbase Extension. Finally, the
chapter explains Test-Driven Development to the reader.</para>

<para>Chapter 3, <emphasis>Journey through the Blog Example</emphasis>,
should give you a feeling how the concepts from chapter 2 were implemented
in Extbase. Based on a given example extension we explain how a blog posting
is created and goes through the different system stages until it is
shown.</para>

<para>In chapter 4, <emphasis>Creating a first extension</emphasis>, we show
you a minimal extension. With this extension, data is managed through the
TYPO3 backend, and displayed in the Frontend.</para>

<para>Chapter 5, <emphasis>Modelling the Domain</emphasis>, shows
Domain-Driven Design with a practical example. It shows how a model can be
planned and implemented.</para>

<para>If the domain model is finished, the necessary TYPO3 infrastructure
must be created: Database tables and backend editing forms. The relevant
information is explained in chapter 6, <emphasis>setting up the persistence
layer</emphasis>.</para>

<para>After chapters 5 and 6 have explained the model layer in detail, we
now focus on the application flow of the extension in chapter 7,
<emphasis>controlling the flow with controllers</emphasis>. These are
implemented in the controller layer.</para>

<para>Now, only the output layer of the extension is missing, the so-called
<emphasis>view</emphasis>. In chapter 8, <emphasis>styling the output with
Fluid</emphasis>, Fluid is explained in detail and its functionalities are
shown with several examples. At the end of the chapter, the explained
functionalities are combined and demonstrated at the example
extension.</para>

<para>Chapter 9, <emphasis>internationalization, validation and
security</emphasis> deals with advanced topics and tasks. This includes the
multilingual capabilities of extensions, the validation of data and the
handling of security aspects.</para>

<para>Chapter 10, <emphasis>outlook</emphasis>, gives a glimpse into code
which is currently being developed. The focus lies on the kickstarter and
the use of Extbase in the TYPO3 Backend. Additionally, this chapter shows
you parts of FLOW3 and explains how Extbase Extensions can be ported to
TYPO3 v5.</para>

<para>Extbase mostly uses the conventions of FLOW3. In <emphasis>Appendix A,
Coding Guidelines</emphasis>, they are summarized.</para>

<para>Appendix B <emphasis>Reference of Extbase</emphasis> contains an
overview about important Extbase concepts and an alphabetical listing of the
API.</para>

<para>In Appendix C, <emphasis>Reference of Fluid</emphasis>, you can find a
reference of all standard Fluid ViewHelpers and the API which is needed to
create own ViewHelpers.</para>
</section>
35 changes: 35 additions & 0 deletions 0-introduction/4-typographic-conventions.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<section version="5.0" xmlns="http://docbook.org/ns/docbook"
xmlns:xl="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:ns="http://docbook.org/ns/docbook"
xmlns:mathml="http://www.w3.org/1998/Math/MathML">
<title>Typographic conventions</title>

<para>This book uses the following typographic conventions:</para>

<para><filename>File names and directories</filename></para>

<para><emphasis>emphasiszed content</emphasis></para>

<para><classname>class names</classname>, <methodname>method
names</methodname>, <code>inline code</code></para>

<para><code><replaceable>cursive non-proportional fonts</replaceable></code>
are used if the user should replace certain code parts.</para>

<note>
<para>This stands for a general advice or hint.</para>
</note>

<tip>
<para>This stands for a tip or a suggestion.</para>
</tip>

<warning>
<para>With this symbol, certain special behavior is explained, which could
lead to problems or impose a risk.</para>
</warning>
</section>
50 changes: 50 additions & 0 deletions 0-introduction/5-thanks.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
<?xml version="1.0" encoding="UTF-8"?>
<section version="5.0" xmlns="http://docbook.org/ns/docbook"
xmlns:xl="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:ns="http://docbook.org/ns/docbook"
xmlns:mathml="http://www.w3.org/1998/Math/MathML">
<title>Thanks</title>

<section>
<title>from Jochen and Sebastian</title>

<para>Above all, we want to thank our families and partners for the
understanding and the support, when we spent our afternoons and evenings
with the book instead of them. Also our customers had to be patient the
one or another time, when we developed Extbase or wrote the book, instead
of continuing a customer project.</para>

<para>TYPO3 would not exist without the dedication and vision of Kasper
Skårhøy and without the tireless work of all community members, especially
the TYPO3 core team. Here, we specifically want to thank the members who
discovered and implemented many future-proof technologies for TYPO3 v5.
Extbase would not be possible without this inspiration and
guideline.</para>

<para>Also when creating the book, we had generous support: A thank you
goes to Patrick Lobacher, as he has written the section about Object
Oriented Programming.</para>

<para>Our special thanks goes to our editors, Alexandra Follenius and
Inken Kiupel, who gave us a lot of feedback and comments to our texts, and
thus had a great impact on the creating of this book. Also we want to
thank the many unknown helping hands at O'Reilly, who ultimately created
this book.</para>

<para>Additionally, you are right now reading the English Version of this
book, so we want to thank our translators for the dedication and work they
have put into this project over the last months!</para>

<para>Last but not least, we want to thank you: That you want to use
Extbase and Fluid!</para>
</section>

<section>
<title>from the translators</title>

<para></para>
</section>
</section>
Loading

0 comments on commit 15c812c

Please sign in to comment.