forked from TYPO3-Documentation/TYPO3CMS-Book-ExtbaseFluid
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
First commit of the current work status
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
Showing
73 changed files
with
8,357 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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> |
Oops, something went wrong.