SlideShare ist ein Scribd-Unternehmen logo
1 von 79
Downloaden Sie, um offline zu lesen
TYPO3 5.0
der aktuelle Stand der Zukunft
Jochen Rau <jochen.rau@typoplanet.de>
Mit Beiträgen von Robert Lemke und Sebastian Kurfürst
Hohenheim, 15. Mai 2009
Wer ist das?

 Dipl.-Ing. Maschinenbau (Universität Stuttgart)
 Erstinfektion mit TYPO3 im Jahr 2001 (danach 5 Jahre lang
 immun)
 lebe und arbeite heute in Tübingen
   zu 60% selbständiger TYPO3-Entwickler
   zu 60% Familienvater
 Projektleiter für Extbase, dem neuen Framework für Extensions
 ab TYPO3 v4.3
 zuvor
   5 Jahre wissenschaftlicher Mitarbeiter bei der Fraunhofer-Gesellschaft und
   dem Deutschen Zentrum für Luft- und Raumfahrt
   5 Jahre Oberstufenlehrer für Mathematik, Physik und Informatik
TYPO3 heute

 erste Veröffentlichung 1998
 33 Kernentwickler
 bisher 500.000 Zeilen Code committed
 aktuelle Codebase: 300.000 Zeilen
 aktuelle stabile Version: TYPO3 4.2.6
 60.000 bis 80.000 Downloads pro Monat
 mehr als 30.000 Nutzer auf typo3.org registriert
 höchste Verbreitung im Mittelstand, jedoch auch Nutzung
 in großen Firmen und Organisationen: Dassault Systems,
 3M, Sixt, Unesco, Unicef, WWF
TYPO3 heute

 TYPO3 v4 ist nahezu vollständig ausgereift
 letzte Releases: Fokus auf Usability-Verbesserungen für
 Benutzer
 gewachsene Architektur
  kaum Unit-Tests
  inkonsistente API
  keine durchgehend objektorientierte Programmierung
 große Änderungen sind risikoreich bis unmöglich
 keine klare Trennung zwischen Applikations-Framework
 und Content-Management-System
Warum TYPO3 v5.0?

 Komplexität – Die Architektur des TYPO3 Core hat sein
 Limit erreich und benötigt viel Einarbeitungszeit
 Datenmodell – Der derzeitige Ansatz ist nicht flexibel
 genug und bereitet bei direktem Datenbankzugriff
 Probleme (auch mit DBAL)
 PHP5 – Die neuen Möglichkeiten von PHP5.3 erlauben eine
 viel sauberere Architektur
 Schnittstellen – Eine neue Architektur ermöglicht eine
 bessere Zusammenarbeit mit externen Diensten (SOAP,
 WebDAV, 3rd party tools)
Warum TYPO3 v5.0?

 Auf mittlere Sicht werden an die 5.000 Extensions für
 TYPO3 4.x verfügbar sein - in sehr unterschiedlicher
 Qualität
 TYPO3 wird verstärkt in sicherheitskritischen Bereichen
 großer und mittlerer Unternehmen eingesetzt
 Die Entwicklung für TYPO3 wird mehr und mehr
 professionalisiert (größere Teams mit mehr
 Aufgabenteilung)
 Neue CMS auf dem Markt können neue Technologien ohne
 Rücksicht auf bestehenden Code nutzen
quot;Wir brauchen
                                  ein neues
                                  Framework!quot;




http://www.sxc.hu/photo/585791
Die TYPO3-Familie
Vergleich mit bestehenden Frameworks
Vergleich mit bestehenden Frameworks
TYPO3 v5.0

 Was bleibt?
  Es wird ein Back-End geben
  TypoScript wird in einer neuen objektorientierten Version 2.0
  veröffentlicht
  Die Seitenbaum-Metapher bleibt erhalten
 Was kommt
  Klare Trennung von Zuständigkeiten durch entkoppelte Schichten
  Wiederverwendbare Komponenten
  Die Speicherung des Contents wird transparent für das CMS
  Vollständige Abstraktion von einer Speicherlösung
  Security wird zentralisiert
Layered Architecture




http://www.sxc.hu/photo/585791
Layered Architecture



                    View
     Presentation   Controller

                    Application Logic (Service Layer)
       Domain       Domain Model (Domain Layer)

                    Data Mapper (part of Content Repository)
     Data source    Data Source Abstraction
Domain Driven Design
Domain-Driven Design

 Domäne = Aktivität oder Geschäft des Benutzers
 Fokus auf die Domäne, und die Logik der Domäne
 genaue Abbildung der Sprache und der Regeln innerhalb
 der Domänen auf Software
 universelle Sprache („ubiquitous language“) zwischen den
 Projektmitgliedern
 die selben Wörter für Diskussion, Modellierung,
 Entwicklung und Dokumentation
Domain-Model des Blog Example

      Aggregate
                                    Aggregate
                                      Root
                       Blog




                       Post




             Comment          Tag
Domain-Model des Blog Example
Domain-Model des Blog Example
Model-View-Controller Pattern
              1                        2
                                                         BlogExample
                                    Request
                    Dispatcher
     TYPO3
             HTML
                                 Response        Controller
              6
                            3                                    assign(Blog)
                                                                                  5
                                                                     render()
                          findByName('MyBlog')
                                                  Blog
                                                          Response
                                                    4                      View
                            Repository


                                                 Domain Model
                                    Blog


                                    Post



                            Comment         Tag
Transparente Persistenz

 Ein Persistence-Manager verwaltet alle Objekte
 Transparent für den Programmierer
  Alle Domain-Aggregates, die durch ein Repository verwaltet werden,
  werden automatisch persistiert
  Änderungen an den Daten eines Objektes werden ebenfalls
  automatisch persistiert
Security
Security

 Authorization
 Authentication
 Validation, Filtering
 Application Firewall
How to protect?

 Es soll alles geschützt werden können
 Das Grundlegendste, was geschützt werden kann sind
 (PHP-)Funktionen und Methoden
 Jemand muss entscheiden, ob eine Methode im aktuellen
 Kontext aufgerufen werden darf
 Jeder Methodenaufruf wird per AOP abgefangen ohne das
 dies im original Code sichtbar ist (“touchless”)
 Zentralisierte Sicherheit: Rollen und Priviliegien werden in
 Access Control Lists (ACLs) definiert
The security election – voting for access

 Die Entscheidung über den Zugriff liegt bei sog. Access
 Decision Voters
 Zugriff wird nur gewährt, falls mindestens ein “grant vote”
 und kein “deny vote” vorliegt
 Eigene Voter können implementiert werden
 Ein Voter kann sich der Stimme enthalten, falls er nicht für
 die aktuelle Methode zuständig ist
Argument-Validierung

 Alle Argumente, die an den Action-Controller übergeben
 werden, werden automatisch validiert
 White-Lists: Nur registrierte Argumente sind verfügbar
 Der Zugriff auf die $_GET- und $_POST-Variablen wird
 abgefangen
Argument-Validierung

 FLOW3 wird mit einer stattlichen Anzahl von Validatoren
 ausgeliefert:
 AlphaNumeric, EmailAddress, Float, Integer, NotEmpty,
 Number, NumberRange, RegularExpression, UUID, Text
 Eigene Validatoren können einfach erstellt werden
 Validatoren können verkettet und verschachtelt werden
Definition der Validierungsregeln

 Alle Validierungsregeln werden an Ort und Stelle durch
 Kommentare festgelegt
 Zusätzliche Regeln können aufgenommen werden
      class Blog {

          /**
           * The blog's name. Also acts as the identifyer.
           *
           * @var string
           * @validate Alphanumeric, Length(minimum = 3, maximum = 50)
           * @identity
           */
          protected $name = '';

          /**
           * A short description of the blog
           *
           * @var string
           * @validate Text, Length(maximum = 150)
           */
          protected $description = '';
Definition der Validierungsregeln



  /**
    * Create action for this controller.
    *
    * @param string $author
    * @param string $emailAddress
    * @param F3BlogDomainModelBlog $blog
    * @return string The rendered view
    * @validate $emailAddress EmailAddress
    */
  public function createAction($author, $emailAddress, F3BlogDomainModelBlog $blog) {
      [...]
  }
Application Firewall

 Die erste Verteidigungslinie
 Blockiert Bad-Requests so früh wie möglich
 Innerhalb der Firewall kann ein Request anhand von
 Mustern klassifiziert werden (z.B. URL, IP address/range, ...)
 Falls ein Muster passt wird der zugehörige Interceptor
 aufgerufen (deny access, grant access, authentication
 required, ...)
 Falls kein Muster passt wird der Request standardmäßig
 abgewiesen
Managed Objects
Managed Objects

 Der Lebenszyklus eines Objekts und das Zusammenspiel
 der aktiven Objekte wird durch den Object-Manager
 gesteuert
 Das Verhalten der Objekte ist in FLOW3 frei konfigurierbar
Playing with building blocks

 Je weniger eine Klasse von einer anderen Klasse weiß, desto
 einfacher ist deren Wiederverwendung in verschiedenen
 Kontexten
 Gestalten Sie ihren eigenen LEGO-Baukasten, indem Sie
 voneinander klar getrennte und entkoppelte Klassen
 schreiben
Class Dependencies

 Eine Klasse kommt selten alleine
 Klassen hänge von anderen Klassen ab, diese hängen von
 anderen Klassen ab, diese hängen von anderen ...
 Problem: Klassen verweisen explizit auf andere Klassen
 $phoneBookManager = new PhoneBookManager
Dependency Injection

 In FLOW3 fragt eine Klasse nicht nach einer Instanz einer
 anderen Klasse; sie bekommt diese automatisch injiziert
 Das ist bekannt als das
 quot;Hollywood Principlequot;:
 quot;Don't call us, we'll call youquot;
 Ermöglicht eine lose Kopplung
 Verbessert den Programmierstil
 Vorraussetzung für Unit Tests
Konstruktor ohne Dependency-Injection

      /**
       * @var F3MyPackageModelCustomerRepository
       */
      protected $customerRepository;

       /**
         * Constructor
         *
         * @author Robert Lemke <robert@typo3.org>
         */
       public function __construct() {
            $this->customerRepository = F3MyPackageModel
   CustomerRepository::getInstance();
       }
Klasse mit Constructor-Injection

      /**
       * @var F3MyPackageModelCustomerRepository
       */
      protected $customerRepository;

       /**
         * Constructor
         *
         * @author Robert Lemke <robert@typo3.org>
         */
       public function __construct(F3MyPackageModelCustomerRepository
   $customerRepository) {
            $this->customerRepository = $customerRepository;
       }
Klasse mit Setter-Injection

      /**
       * @var F3MyPackageModelCustomerRepository
       */
      protected $customerRepository;

       /**
         * Injects the customer repository
         *
         * @author Robert Lemke <robert@typo3.org>
         */
       public function injectCustomerRepository(F3MyPackageModelCustomerRepository
   $customerRepository) {
            $this->customerRepository = $customerRepository;
       }
Klasse mit Property-Injection



     /**
      * @var F3MyPackageModelCustomerRepository
      * @inject
      */
     protected $customerRepository;
Aspektorientierte
 Programmierung
Aspektorientierte Programmierung

 AOP ist ein Programmierparadigma und ergänzt OOP
 OOP modularisiert „concerns“ (Aufgabenbereiche): durch
 Pakete, Klassen, Methoden
 AOP: cross-cutting concerns
Cross-cutting concerns


                   Presentation
                                  The concerns
                                    live here

                     Domain


                    Data source
Cross-cutting concerns




    Domain Model   Domain Model   Domain Model


                                                 CONCER
                                                       NS
                     Security
                                                  X-ING
                     Logging
Fehlende Funktionalität in PHP

Mit AOP kann man
 alle „cross-cutting concerns“ zentralisieren und sauber
 separieren
 beliebige Methodenaufrufe abfangen
 neue Funktionalität zu Code hinzufügen, ohne diesen zu
 verändern
 ... viele weitere Tricks anwenden
Exkurs: Das Security-Framework


                                               $customer->setName(...)
         Presentation   changeCustomerAction

                                                     Security Framework

           Domain            Customer




         Data source
Exkurs: Das Security-Framework


                                               $customer->setName(...)
         Presentation   changeCustomerAction

                                                     Security Framework

           Domain            Customer




         Data source


          Touchless Security!
Test Driven Development
Test Driven Development ...




               ... means that you write an automated
               test, then you write just enough code to
               make that one test pass, then you
               refactor the code primarily to improve
               readability and remove duplication.

                                               Henrik Kniberg
Test Driven Development


                FAIL
    Test Case
?
Test Driven Development


                FAIL                    OK
    Test Case
?                      Implementation
Test Driven Development


                FAIL                    OK                 OK
                                             Refactoring
    Test Case
?                      Implementation
Test Driven Development


                FAIL                    OK                 OK
                                             Refactoring
    Test Case
?                      Implementation
Fluid
The Zen of
Templating



        http://www.sxc.hu/photo/821903
Was ist eine Template-Engine?

 übernimmt die Darstellung von Daten
 lebt in der View-Komponente
 Bekannte Engines
  Smarty
  *TAL
  Velocity
 Designer schreiben kein PHP, sondern HTML
Ziele für Fluid

 einfache, elegante Template-Engine
 vielfältige Unterstützung für den Template-Schreiber (z. B.
 Autocompletion)
 einfache und saubere Erweiterbarkeit durch Trennung in
 Core-Komponenten und View-Helper
 vielerlei Ausgabemedien möglich
Grundkonzepte von Fluid

 Ausgabelogik ist in View Helpers (Tags) gekapselt

                                          Namespace-
 Beispiel                                Deklaration

 {namespace f3=F3FluidViewHelpers}
 <f:linkaction=“someAction“>more</f:link>

                                    Aufruf eines
                                    View Helpers
Grundkonzepte von Fluid

 Jeder Tag entspricht einer Klasse

 1. Beispiel
 {namespace f=F3FluidViewHelpers}
 <f:link>...</f:link>
 F3FluidViewHelpersLinkViewHelper

 2. Beispiel
 {namespace f=F3FluidViewHelpers}
 <f:form.textbox />
Grundkonzepte von Fluid

 Variablen


 $this->view->assign(‘blogTitle’,
    $blog->getTitle());

 <h1>Der Name des Blogs ist: {blogTitle}</h1>
Grundkonzepte von Fluid

 Object Accessors
 $this->view->assign(‘blog’, $blog);


 <h1>Der Name des Blogs ist: {blog.title}</h1>
 <p>Autor: {blog.author}</p>

 Getter / Setter werden automatisch aufgerufen
Grundkonzepte

 Arrays
 <f:link actionName=“show“
    arguments=“{blog : blog, name : ‘Hallo’}“>
    Posting anzeigen
 </f:link>

 JSON-Objektsyntax
Beispiel-Template aus dem Blog-Example

BlogExample/Resources/Private/Templates/Blog/index.html
Beispiel-Template aus dem Blog-Example

BlogExample/Resources/Private/Templates/Blog/edit.html
Migration von v4 nach v5
TYPO3 Transition Days
FLOW3 - der aktuelle Stand




           Developing TYPO3 5.0 ...
Der aktuelle Stand


                                                            Reflection
                                Locale
  AOP

                                                             Resource
                                   Log
Object

                                  MVC
Config.                                                       Session

                              Package
 Cache                                                          Utility

                            Persistence
  Error                                                     Validation

                              Property
 Event

                                          0%   50%   100%
          0%   50%   100%                                                 0%   50%   100%
Nächste Schritte

 erste FLOW3-Beta in 3 Monaten
 erste Pilotprojekte schon jetzt
 Weiterentwicklung des CMS
 Geplanter Beta-Release von TYPO3 5.0: Anfang 2010
The Berlin Manifesto

We, the participants of the T3TD08 state that ...
  TYPO3 v4 continues to be actively developed
  v4 development will continue after the the release of v5
  Future releases of v4 will see its features converge with those in
  TYPO3 v5
  TYPO3 v5 will be the successor to TYPO3 v4
  Migration of content from TYPO3 v4 to TYPO3 v5 will be easily
  possible
  TYPO3 v5 will introduce many new concepts and ideas.
  Learning never stops and we'll help with adequate resources to
  ensure a smooth transition.
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
Extbase — Das neue Framework für Extensions

 quot;Nachfolgerquot; von tslib_pibase
 Ausgewählte Komponenten und Paradigmen von FLOW3
 wurden auf TYPO3 Version 4.3 portiert
  Transparente Persistenz des Domain-Models
  Model-View-Controller
  Validierung
 Ziele
  Schon jetzt mit „FLOW3-Paradigmen“ programmieren
  Migration des Codes vereinfachen
  Lernpfad zu TYPO3 v5 eröffnen
Controlle
                   r



          Model
Domain




          View




Oth
   er
        Stu
              ff
Kickstarter für Extensions

 Nachfolger für den bisherigen Kickstarter
 Release geplant für Juli 2009
 basiert auf den Prinzipien des Domain-Driven Design
 Projekt des Google Summer of Code 2009
Fluid — Die Template-Engine für FLOW3 und v4.x

 Fluid steht ab der Version 4.3 zur Verfügung
 automatische Portierung des Kerns von Fluid
 an TYPO3 v4 angepasste Tags und View-Helper
 Standard Template-Engine für Extbase
Getting Started
Links

 FLOW3 Website
 http://flow3.typo3.org
 TYPO3 Forge http://forge.typo3.org
 Download
 https://svn.typo3.org/FLOW3/Distribution/trunk
 https://svn.typo3.org/FLOW3/Distribution/branches/
 BlogExample
 Fluid http://forge.typo3.org/projects/package-fluid
 http://blog.typoplanet.de
inspiring people to share.

Weitere ähnliche Inhalte

Andere mochten auch

Typo3 4.3 Die Neuerungen im Überblick
Typo3 4.3 Die Neuerungen im ÜberblickTypo3 4.3 Die Neuerungen im Überblick
Typo3 4.3 Die Neuerungen im Überblickdie.agilen GmbH
 
TYPO3 CMS 6.1 - Die Neuerungen - typovision GmbH
TYPO3 CMS 6.1 - Die Neuerungen - typovision GmbHTYPO3 CMS 6.1 - Die Neuerungen - typovision GmbH
TYPO3 CMS 6.1 - Die Neuerungen - typovision GmbHdie.agilen GmbH
 
TYPO3 4.5 LTS - Die Neuerungen auf einen Blick
TYPO3 4.5 LTS - Die Neuerungen auf einen BlickTYPO3 4.5 LTS - Die Neuerungen auf einen Blick
TYPO3 4.5 LTS - Die Neuerungen auf einen Blickdie.agilen GmbH
 
TYPO3 CMS 6.0 - Die Neuerungen (typovision GmbH)
TYPO3 CMS 6.0 - Die Neuerungen (typovision GmbH)TYPO3 CMS 6.0 - Die Neuerungen (typovision GmbH)
TYPO3 CMS 6.0 - Die Neuerungen (typovision GmbH)die.agilen GmbH
 
TYPO3 CMS 7.0 - Die Neuerungen - pluswerk
TYPO3 CMS 7.0 - Die Neuerungen - pluswerkTYPO3 CMS 7.0 - Die Neuerungen - pluswerk
TYPO3 CMS 7.0 - Die Neuerungen - pluswerkdie.agilen GmbH
 
TYPO3 CMS 8.4 - Die Neuerungen - pluswerk
TYPO3 CMS 8.4 - Die Neuerungen - pluswerkTYPO3 CMS 8.4 - Die Neuerungen - pluswerk
TYPO3 CMS 8.4 - Die Neuerungen - pluswerkdie.agilen GmbH
 
TYPO3 CMS 7 LTS - Die Neuerungen - pluswerk
TYPO3 CMS 7 LTS - Die Neuerungen - pluswerkTYPO3 CMS 7 LTS - Die Neuerungen - pluswerk
TYPO3 CMS 7 LTS - Die Neuerungen - pluswerkdie.agilen GmbH
 
TYPO3 CMS 8.0 - Die Neuerungen - pluswerk
TYPO3 CMS 8.0 - Die Neuerungen - pluswerkTYPO3 CMS 8.0 - Die Neuerungen - pluswerk
TYPO3 CMS 8.0 - Die Neuerungen - pluswerkdie.agilen GmbH
 
TYPO3 Neos - Next Generation CMS (IPC 2014)
TYPO3 Neos - Next Generation CMS (IPC 2014)TYPO3 Neos - Next Generation CMS (IPC 2014)
TYPO3 Neos - Next Generation CMS (IPC 2014)die.agilen GmbH
 
TYPO3 Neos - Next Generation CMS - Webkongress Erlangen 2014
TYPO3 Neos - Next Generation CMS - Webkongress Erlangen 2014TYPO3 Neos - Next Generation CMS - Webkongress Erlangen 2014
TYPO3 Neos - Next Generation CMS - Webkongress Erlangen 2014die.agilen GmbH
 
TYPO3 CMS 6.2 LTS - Die Neuerungen
TYPO3 CMS 6.2 LTS - Die NeuerungenTYPO3 CMS 6.2 LTS - Die Neuerungen
TYPO3 CMS 6.2 LTS - Die Neuerungendie.agilen GmbH
 
Open Source Enterprise Content Management mit TYPO3
Open Source Enterprise Content Management mit TYPO3Open Source Enterprise Content Management mit TYPO3
Open Source Enterprise Content Management mit TYPO3incore IT Solutions
 
Responsive Web Design mit TYPO3
Responsive Web Design mit TYPO3Responsive Web Design mit TYPO3
Responsive Web Design mit TYPO3Martin Huber
 
TYPO3 Certified Integrator - Teste dein Wissen
TYPO3 Certified Integrator - Teste dein WissenTYPO3 Certified Integrator - Teste dein Wissen
TYPO3 Certified Integrator - Teste dein WissenAlex Kellner
 
Der Weg zu TYPO3 CMS 6.0 und Einblicke in die TYPO3-Entwicklung
Der Weg zu TYPO3 CMS 6.0 und Einblicke in die TYPO3-EntwicklungDer Weg zu TYPO3 CMS 6.0 und Einblicke in die TYPO3-Entwicklung
Der Weg zu TYPO3 CMS 6.0 und Einblicke in die TYPO3-EntwicklungSteffen Gebert
 

Andere mochten auch (17)

Typo3 4.3 Die Neuerungen im Überblick
Typo3 4.3 Die Neuerungen im ÜberblickTypo3 4.3 Die Neuerungen im Überblick
Typo3 4.3 Die Neuerungen im Überblick
 
TYPO3 CMS 6.1 - Die Neuerungen - typovision GmbH
TYPO3 CMS 6.1 - Die Neuerungen - typovision GmbHTYPO3 CMS 6.1 - Die Neuerungen - typovision GmbH
TYPO3 CMS 6.1 - Die Neuerungen - typovision GmbH
 
TYPO3 4.5 LTS - Die Neuerungen auf einen Blick
TYPO3 4.5 LTS - Die Neuerungen auf einen BlickTYPO3 4.5 LTS - Die Neuerungen auf einen Blick
TYPO3 4.5 LTS - Die Neuerungen auf einen Blick
 
TYPO3 CMS 6.0 - Die Neuerungen (typovision GmbH)
TYPO3 CMS 6.0 - Die Neuerungen (typovision GmbH)TYPO3 CMS 6.0 - Die Neuerungen (typovision GmbH)
TYPO3 CMS 6.0 - Die Neuerungen (typovision GmbH)
 
TYPO3 CMS 7.0 - Die Neuerungen - pluswerk
TYPO3 CMS 7.0 - Die Neuerungen - pluswerkTYPO3 CMS 7.0 - Die Neuerungen - pluswerk
TYPO3 CMS 7.0 - Die Neuerungen - pluswerk
 
TYPO3 CMS 8.4 - Die Neuerungen - pluswerk
TYPO3 CMS 8.4 - Die Neuerungen - pluswerkTYPO3 CMS 8.4 - Die Neuerungen - pluswerk
TYPO3 CMS 8.4 - Die Neuerungen - pluswerk
 
TYPO3 CMS 7 LTS - Die Neuerungen - pluswerk
TYPO3 CMS 7 LTS - Die Neuerungen - pluswerkTYPO3 CMS 7 LTS - Die Neuerungen - pluswerk
TYPO3 CMS 7 LTS - Die Neuerungen - pluswerk
 
TYPO3 CMS 8.0 - Die Neuerungen - pluswerk
TYPO3 CMS 8.0 - Die Neuerungen - pluswerkTYPO3 CMS 8.0 - Die Neuerungen - pluswerk
TYPO3 CMS 8.0 - Die Neuerungen - pluswerk
 
TYPO3 Neos - Next Generation CMS (IPC 2014)
TYPO3 Neos - Next Generation CMS (IPC 2014)TYPO3 Neos - Next Generation CMS (IPC 2014)
TYPO3 Neos - Next Generation CMS (IPC 2014)
 
TYPO3 Neos - Next Generation CMS - Webkongress Erlangen 2014
TYPO3 Neos - Next Generation CMS - Webkongress Erlangen 2014TYPO3 Neos - Next Generation CMS - Webkongress Erlangen 2014
TYPO3 Neos - Next Generation CMS - Webkongress Erlangen 2014
 
HTML5 in TYPO3 4.7
HTML5 in TYPO3 4.7HTML5 in TYPO3 4.7
HTML5 in TYPO3 4.7
 
TYPO3 CMS 6.2 LTS - Die Neuerungen
TYPO3 CMS 6.2 LTS - Die NeuerungenTYPO3 CMS 6.2 LTS - Die Neuerungen
TYPO3 CMS 6.2 LTS - Die Neuerungen
 
Open Source Enterprise Content Management mit TYPO3
Open Source Enterprise Content Management mit TYPO3Open Source Enterprise Content Management mit TYPO3
Open Source Enterprise Content Management mit TYPO3
 
Responsive Web Design mit TYPO3
Responsive Web Design mit TYPO3Responsive Web Design mit TYPO3
Responsive Web Design mit TYPO3
 
TYPO3 Certified Integrator - Teste dein Wissen
TYPO3 Certified Integrator - Teste dein WissenTYPO3 Certified Integrator - Teste dein Wissen
TYPO3 Certified Integrator - Teste dein Wissen
 
Upgrade auf TYPO3 6.2
Upgrade auf TYPO3 6.2Upgrade auf TYPO3 6.2
Upgrade auf TYPO3 6.2
 
Der Weg zu TYPO3 CMS 6.0 und Einblicke in die TYPO3-Entwicklung
Der Weg zu TYPO3 CMS 6.0 und Einblicke in die TYPO3-EntwicklungDer Weg zu TYPO3 CMS 6.0 und Einblicke in die TYPO3-Entwicklung
Der Weg zu TYPO3 CMS 6.0 und Einblicke in die TYPO3-Entwicklung
 

Ähnlich wie TYPO3 5.0 - Der aktuelle Stand der Zukunft

Entwickeln mit Wordpress
Entwickeln mit WordpressEntwickeln mit Wordpress
Entwickeln mit WordpressBlogwerk AG
 
TYPO3 CMS 7.3 - Die Neuerungen - pluswerk
TYPO3 CMS 7.3 - Die Neuerungen - pluswerkTYPO3 CMS 7.3 - Die Neuerungen - pluswerk
TYPO3 CMS 7.3 - Die Neuerungen - pluswerkdie.agilen GmbH
 
TYPO3 CMS 7.5 - Die Neuerungen - pluswerk
TYPO3 CMS 7.5 - Die Neuerungen - pluswerkTYPO3 CMS 7.5 - Die Neuerungen - pluswerk
TYPO3 CMS 7.5 - Die Neuerungen - pluswerkdie.agilen GmbH
 
The Lotus Code Cookbook
The Lotus Code CookbookThe Lotus Code Cookbook
The Lotus Code CookbookUlrich Krause
 
elemente websolutions - Zusammenfassung T3DD09
elemente websolutions - Zusammenfassung T3DD09elemente websolutions - Zusammenfassung T3DD09
elemente websolutions - Zusammenfassung T3DD09elemente websolutions
 
TYPO3 CMS 8.1 - Die Neuerungen - pluswerk
TYPO3 CMS 8.1 - Die Neuerungen - pluswerkTYPO3 CMS 8.1 - Die Neuerungen - pluswerk
TYPO3 CMS 8.1 - Die Neuerungen - pluswerkdie.agilen GmbH
 
Metaprogrammierung und Reflection
Metaprogrammierung und ReflectionMetaprogrammierung und Reflection
Metaprogrammierung und ReflectionStefan Marr
 
mm_forum 2.0
mm_forum 2.0mm_forum 2.0
mm_forum 2.0mhelmich
 
WPF Custom Control Development Unchained
WPF Custom Control Development UnchainedWPF Custom Control Development Unchained
WPF Custom Control Development Unchainedthoemmes
 
Domain Driven Design in Rails
Domain Driven Design in RailsDomain Driven Design in Rails
Domain Driven Design in RailsAngelo Maron
 
TYPO3 CMS 7.6 - Die Neuerungen - pluswerk
TYPO3 CMS 7.6 - Die Neuerungen - pluswerkTYPO3 CMS 7.6 - Die Neuerungen - pluswerk
TYPO3 CMS 7.6 - Die Neuerungen - pluswerkdie.agilen GmbH
 
FLOW3 Einführung auf dem TYPO3Camp Berlin 2012
FLOW3 Einführung auf dem TYPO3Camp Berlin 2012FLOW3 Einführung auf dem TYPO3Camp Berlin 2012
FLOW3 Einführung auf dem TYPO3Camp Berlin 2012Christof Rodejohann
 
Anforderungsanalyse und UML Grundlagen
Anforderungsanalyse und UML GrundlagenAnforderungsanalyse und UML Grundlagen
Anforderungsanalyse und UML GrundlagenChristian Baranowski
 
Bkr Workflow Oeffentlich
Bkr Workflow OeffentlichBkr Workflow Oeffentlich
Bkr Workflow OeffentlichRalf Ruethlein
 
Composer und TYPO3
Composer und TYPO3Composer und TYPO3
Composer und TYPO3Peter Kraume
 

Ähnlich wie TYPO3 5.0 - Der aktuelle Stand der Zukunft (20)

Entwickeln mit Wordpress
Entwickeln mit WordpressEntwickeln mit Wordpress
Entwickeln mit Wordpress
 
TYPO3 CMS 7.3 - Die Neuerungen - pluswerk
TYPO3 CMS 7.3 - Die Neuerungen - pluswerkTYPO3 CMS 7.3 - Die Neuerungen - pluswerk
TYPO3 CMS 7.3 - Die Neuerungen - pluswerk
 
TYPO3 CMS 7.5 - Die Neuerungen - pluswerk
TYPO3 CMS 7.5 - Die Neuerungen - pluswerkTYPO3 CMS 7.5 - Die Neuerungen - pluswerk
TYPO3 CMS 7.5 - Die Neuerungen - pluswerk
 
FLOW3-Workshop F3X12
FLOW3-Workshop F3X12FLOW3-Workshop F3X12
FLOW3-Workshop F3X12
 
T3 ak11 flow3_aop
T3 ak11 flow3_aopT3 ak11 flow3_aop
T3 ak11 flow3_aop
 
The Lotus Code Cookbook
The Lotus Code CookbookThe Lotus Code Cookbook
The Lotus Code Cookbook
 
elemente websolutions - Zusammenfassung T3DD09
elemente websolutions - Zusammenfassung T3DD09elemente websolutions - Zusammenfassung T3DD09
elemente websolutions - Zusammenfassung T3DD09
 
TYPO3 CMS 8.1 - Die Neuerungen - pluswerk
TYPO3 CMS 8.1 - Die Neuerungen - pluswerkTYPO3 CMS 8.1 - Die Neuerungen - pluswerk
TYPO3 CMS 8.1 - Die Neuerungen - pluswerk
 
Metaprogrammierung und Reflection
Metaprogrammierung und ReflectionMetaprogrammierung und Reflection
Metaprogrammierung und Reflection
 
mm_forum 2.0
mm_forum 2.0mm_forum 2.0
mm_forum 2.0
 
WPF Custom Control Development Unchained
WPF Custom Control Development UnchainedWPF Custom Control Development Unchained
WPF Custom Control Development Unchained
 
Debugging und Profiling
Debugging und ProfilingDebugging und Profiling
Debugging und Profiling
 
Domain Driven Design in Rails
Domain Driven Design in RailsDomain Driven Design in Rails
Domain Driven Design in Rails
 
Neuerungen in TYPO3 6.0
Neuerungen in TYPO3 6.0Neuerungen in TYPO3 6.0
Neuerungen in TYPO3 6.0
 
TYPO3 CMS 7.6 - Die Neuerungen - pluswerk
TYPO3 CMS 7.6 - Die Neuerungen - pluswerkTYPO3 CMS 7.6 - Die Neuerungen - pluswerk
TYPO3 CMS 7.6 - Die Neuerungen - pluswerk
 
FLOW3 Einführung auf dem TYPO3Camp Berlin 2012
FLOW3 Einführung auf dem TYPO3Camp Berlin 2012FLOW3 Einführung auf dem TYPO3Camp Berlin 2012
FLOW3 Einführung auf dem TYPO3Camp Berlin 2012
 
Anforderungsanalyse und UML Grundlagen
Anforderungsanalyse und UML GrundlagenAnforderungsanalyse und UML Grundlagen
Anforderungsanalyse und UML Grundlagen
 
Bkr Workflow Oeffentlich
Bkr Workflow OeffentlichBkr Workflow Oeffentlich
Bkr Workflow Oeffentlich
 
Reactive Programming
Reactive ProgrammingReactive Programming
Reactive Programming
 
Composer und TYPO3
Composer und TYPO3Composer und TYPO3
Composer und TYPO3
 

Mehr von Jochen Rau

The Web as Application Platform Driven by Semantic Technologies
The Web as Application Platform Driven by Semantic TechnologiesThe Web as Application Platform Driven by Semantic Technologies
The Web as Application Platform Driven by Semantic TechnologiesJochen Rau
 
2012 08-11-flow3-northeast-php
2012 08-11-flow3-northeast-php2012 08-11-flow3-northeast-php
2012 08-11-flow3-northeast-phpJochen Rau
 
Future Challenges for TYPO3
Future Challenges for TYPO3Future Challenges for TYPO3
Future Challenges for TYPO3Jochen Rau
 
Semantic TYPO3
Semantic TYPO3Semantic TYPO3
Semantic TYPO3Jochen Rau
 
Extbase and Beyond
Extbase and BeyondExtbase and Beyond
Extbase and BeyondJochen Rau
 
Get into the FLOW with Extbase
Get into the FLOW with ExtbaseGet into the FLOW with Extbase
Get into the FLOW with ExtbaseJochen Rau
 

Mehr von Jochen Rau (6)

The Web as Application Platform Driven by Semantic Technologies
The Web as Application Platform Driven by Semantic TechnologiesThe Web as Application Platform Driven by Semantic Technologies
The Web as Application Platform Driven by Semantic Technologies
 
2012 08-11-flow3-northeast-php
2012 08-11-flow3-northeast-php2012 08-11-flow3-northeast-php
2012 08-11-flow3-northeast-php
 
Future Challenges for TYPO3
Future Challenges for TYPO3Future Challenges for TYPO3
Future Challenges for TYPO3
 
Semantic TYPO3
Semantic TYPO3Semantic TYPO3
Semantic TYPO3
 
Extbase and Beyond
Extbase and BeyondExtbase and Beyond
Extbase and Beyond
 
Get into the FLOW with Extbase
Get into the FLOW with ExtbaseGet into the FLOW with Extbase
Get into the FLOW with Extbase
 

TYPO3 5.0 - Der aktuelle Stand der Zukunft

  • 1. TYPO3 5.0 der aktuelle Stand der Zukunft Jochen Rau <jochen.rau@typoplanet.de> Mit Beiträgen von Robert Lemke und Sebastian Kurfürst Hohenheim, 15. Mai 2009
  • 2. Wer ist das? Dipl.-Ing. Maschinenbau (Universität Stuttgart) Erstinfektion mit TYPO3 im Jahr 2001 (danach 5 Jahre lang immun) lebe und arbeite heute in Tübingen zu 60% selbständiger TYPO3-Entwickler zu 60% Familienvater Projektleiter für Extbase, dem neuen Framework für Extensions ab TYPO3 v4.3 zuvor 5 Jahre wissenschaftlicher Mitarbeiter bei der Fraunhofer-Gesellschaft und dem Deutschen Zentrum für Luft- und Raumfahrt 5 Jahre Oberstufenlehrer für Mathematik, Physik und Informatik
  • 3. TYPO3 heute erste Veröffentlichung 1998 33 Kernentwickler bisher 500.000 Zeilen Code committed aktuelle Codebase: 300.000 Zeilen aktuelle stabile Version: TYPO3 4.2.6 60.000 bis 80.000 Downloads pro Monat mehr als 30.000 Nutzer auf typo3.org registriert höchste Verbreitung im Mittelstand, jedoch auch Nutzung in großen Firmen und Organisationen: Dassault Systems, 3M, Sixt, Unesco, Unicef, WWF
  • 4. TYPO3 heute TYPO3 v4 ist nahezu vollständig ausgereift letzte Releases: Fokus auf Usability-Verbesserungen für Benutzer gewachsene Architektur kaum Unit-Tests inkonsistente API keine durchgehend objektorientierte Programmierung große Änderungen sind risikoreich bis unmöglich keine klare Trennung zwischen Applikations-Framework und Content-Management-System
  • 5. Warum TYPO3 v5.0? Komplexität – Die Architektur des TYPO3 Core hat sein Limit erreich und benötigt viel Einarbeitungszeit Datenmodell – Der derzeitige Ansatz ist nicht flexibel genug und bereitet bei direktem Datenbankzugriff Probleme (auch mit DBAL) PHP5 – Die neuen Möglichkeiten von PHP5.3 erlauben eine viel sauberere Architektur Schnittstellen – Eine neue Architektur ermöglicht eine bessere Zusammenarbeit mit externen Diensten (SOAP, WebDAV, 3rd party tools)
  • 6. Warum TYPO3 v5.0? Auf mittlere Sicht werden an die 5.000 Extensions für TYPO3 4.x verfügbar sein - in sehr unterschiedlicher Qualität TYPO3 wird verstärkt in sicherheitskritischen Bereichen großer und mittlerer Unternehmen eingesetzt Die Entwicklung für TYPO3 wird mehr und mehr professionalisiert (größere Teams mit mehr Aufgabenteilung) Neue CMS auf dem Markt können neue Technologien ohne Rücksicht auf bestehenden Code nutzen
  • 7. quot;Wir brauchen ein neues Framework!quot; http://www.sxc.hu/photo/585791
  • 11. TYPO3 v5.0 Was bleibt? Es wird ein Back-End geben TypoScript wird in einer neuen objektorientierten Version 2.0 veröffentlicht Die Seitenbaum-Metapher bleibt erhalten Was kommt Klare Trennung von Zuständigkeiten durch entkoppelte Schichten Wiederverwendbare Komponenten Die Speicherung des Contents wird transparent für das CMS Vollständige Abstraktion von einer Speicherlösung Security wird zentralisiert
  • 13. Layered Architecture View Presentation Controller Application Logic (Service Layer) Domain Domain Model (Domain Layer) Data Mapper (part of Content Repository) Data source Data Source Abstraction
  • 15.
  • 16.
  • 17. Domain-Driven Design Domäne = Aktivität oder Geschäft des Benutzers Fokus auf die Domäne, und die Logik der Domäne genaue Abbildung der Sprache und der Regeln innerhalb der Domänen auf Software universelle Sprache („ubiquitous language“) zwischen den Projektmitgliedern die selben Wörter für Diskussion, Modellierung, Entwicklung und Dokumentation
  • 18. Domain-Model des Blog Example Aggregate Aggregate Root Blog Post Comment Tag
  • 21. Model-View-Controller Pattern 1 2 BlogExample Request Dispatcher TYPO3 HTML Response Controller 6 3 assign(Blog) 5 render() findByName('MyBlog') Blog Response 4 View Repository Domain Model Blog Post Comment Tag
  • 22. Transparente Persistenz Ein Persistence-Manager verwaltet alle Objekte Transparent für den Programmierer Alle Domain-Aggregates, die durch ein Repository verwaltet werden, werden automatisch persistiert Änderungen an den Daten eines Objektes werden ebenfalls automatisch persistiert
  • 24. Security Authorization Authentication Validation, Filtering Application Firewall
  • 25. How to protect? Es soll alles geschützt werden können Das Grundlegendste, was geschützt werden kann sind (PHP-)Funktionen und Methoden Jemand muss entscheiden, ob eine Methode im aktuellen Kontext aufgerufen werden darf Jeder Methodenaufruf wird per AOP abgefangen ohne das dies im original Code sichtbar ist (“touchless”) Zentralisierte Sicherheit: Rollen und Priviliegien werden in Access Control Lists (ACLs) definiert
  • 26. The security election – voting for access Die Entscheidung über den Zugriff liegt bei sog. Access Decision Voters Zugriff wird nur gewährt, falls mindestens ein “grant vote” und kein “deny vote” vorliegt Eigene Voter können implementiert werden Ein Voter kann sich der Stimme enthalten, falls er nicht für die aktuelle Methode zuständig ist
  • 27. Argument-Validierung Alle Argumente, die an den Action-Controller übergeben werden, werden automatisch validiert White-Lists: Nur registrierte Argumente sind verfügbar Der Zugriff auf die $_GET- und $_POST-Variablen wird abgefangen
  • 28. Argument-Validierung FLOW3 wird mit einer stattlichen Anzahl von Validatoren ausgeliefert: AlphaNumeric, EmailAddress, Float, Integer, NotEmpty, Number, NumberRange, RegularExpression, UUID, Text Eigene Validatoren können einfach erstellt werden Validatoren können verkettet und verschachtelt werden
  • 29. Definition der Validierungsregeln Alle Validierungsregeln werden an Ort und Stelle durch Kommentare festgelegt Zusätzliche Regeln können aufgenommen werden class Blog { /** * The blog's name. Also acts as the identifyer. * * @var string * @validate Alphanumeric, Length(minimum = 3, maximum = 50) * @identity */ protected $name = ''; /** * A short description of the blog * * @var string * @validate Text, Length(maximum = 150) */ protected $description = '';
  • 30. Definition der Validierungsregeln /** * Create action for this controller. * * @param string $author * @param string $emailAddress * @param F3BlogDomainModelBlog $blog * @return string The rendered view * @validate $emailAddress EmailAddress */ public function createAction($author, $emailAddress, F3BlogDomainModelBlog $blog) { [...] }
  • 31. Application Firewall Die erste Verteidigungslinie Blockiert Bad-Requests so früh wie möglich Innerhalb der Firewall kann ein Request anhand von Mustern klassifiziert werden (z.B. URL, IP address/range, ...) Falls ein Muster passt wird der zugehörige Interceptor aufgerufen (deny access, grant access, authentication required, ...) Falls kein Muster passt wird der Request standardmäßig abgewiesen
  • 33. Managed Objects Der Lebenszyklus eines Objekts und das Zusammenspiel der aktiven Objekte wird durch den Object-Manager gesteuert Das Verhalten der Objekte ist in FLOW3 frei konfigurierbar
  • 34. Playing with building blocks Je weniger eine Klasse von einer anderen Klasse weiß, desto einfacher ist deren Wiederverwendung in verschiedenen Kontexten Gestalten Sie ihren eigenen LEGO-Baukasten, indem Sie voneinander klar getrennte und entkoppelte Klassen schreiben
  • 35. Class Dependencies Eine Klasse kommt selten alleine Klassen hänge von anderen Klassen ab, diese hängen von anderen Klassen ab, diese hängen von anderen ... Problem: Klassen verweisen explizit auf andere Klassen $phoneBookManager = new PhoneBookManager
  • 36. Dependency Injection In FLOW3 fragt eine Klasse nicht nach einer Instanz einer anderen Klasse; sie bekommt diese automatisch injiziert Das ist bekannt als das quot;Hollywood Principlequot;: quot;Don't call us, we'll call youquot; Ermöglicht eine lose Kopplung Verbessert den Programmierstil Vorraussetzung für Unit Tests
  • 37. Konstruktor ohne Dependency-Injection /** * @var F3MyPackageModelCustomerRepository */ protected $customerRepository; /** * Constructor * * @author Robert Lemke <robert@typo3.org> */ public function __construct() { $this->customerRepository = F3MyPackageModel CustomerRepository::getInstance(); }
  • 38. Klasse mit Constructor-Injection /** * @var F3MyPackageModelCustomerRepository */ protected $customerRepository; /** * Constructor * * @author Robert Lemke <robert@typo3.org> */ public function __construct(F3MyPackageModelCustomerRepository $customerRepository) { $this->customerRepository = $customerRepository; }
  • 39. Klasse mit Setter-Injection /** * @var F3MyPackageModelCustomerRepository */ protected $customerRepository; /** * Injects the customer repository * * @author Robert Lemke <robert@typo3.org> */ public function injectCustomerRepository(F3MyPackageModelCustomerRepository $customerRepository) { $this->customerRepository = $customerRepository; }
  • 40. Klasse mit Property-Injection /** * @var F3MyPackageModelCustomerRepository * @inject */ protected $customerRepository;
  • 42. Aspektorientierte Programmierung AOP ist ein Programmierparadigma und ergänzt OOP OOP modularisiert „concerns“ (Aufgabenbereiche): durch Pakete, Klassen, Methoden AOP: cross-cutting concerns
  • 43. Cross-cutting concerns Presentation The concerns live here Domain Data source
  • 44. Cross-cutting concerns Domain Model Domain Model Domain Model CONCER NS Security X-ING Logging
  • 45. Fehlende Funktionalität in PHP Mit AOP kann man alle „cross-cutting concerns“ zentralisieren und sauber separieren beliebige Methodenaufrufe abfangen neue Funktionalität zu Code hinzufügen, ohne diesen zu verändern ... viele weitere Tricks anwenden
  • 46. Exkurs: Das Security-Framework $customer->setName(...) Presentation changeCustomerAction Security Framework Domain Customer Data source
  • 47. Exkurs: Das Security-Framework $customer->setName(...) Presentation changeCustomerAction Security Framework Domain Customer Data source Touchless Security!
  • 49. Test Driven Development ... ... means that you write an automated test, then you write just enough code to make that one test pass, then you refactor the code primarily to improve readability and remove duplication. Henrik Kniberg
  • 50. Test Driven Development FAIL Test Case ?
  • 51. Test Driven Development FAIL OK Test Case ? Implementation
  • 52. Test Driven Development FAIL OK OK Refactoring Test Case ? Implementation
  • 53. Test Driven Development FAIL OK OK Refactoring Test Case ? Implementation
  • 54. Fluid The Zen of Templating http://www.sxc.hu/photo/821903
  • 55. Was ist eine Template-Engine? übernimmt die Darstellung von Daten lebt in der View-Komponente Bekannte Engines Smarty *TAL Velocity Designer schreiben kein PHP, sondern HTML
  • 56. Ziele für Fluid einfache, elegante Template-Engine vielfältige Unterstützung für den Template-Schreiber (z. B. Autocompletion) einfache und saubere Erweiterbarkeit durch Trennung in Core-Komponenten und View-Helper vielerlei Ausgabemedien möglich
  • 57. Grundkonzepte von Fluid Ausgabelogik ist in View Helpers (Tags) gekapselt Namespace- Beispiel Deklaration {namespace f3=F3FluidViewHelpers} <f:linkaction=“someAction“>more</f:link> Aufruf eines View Helpers
  • 58. Grundkonzepte von Fluid Jeder Tag entspricht einer Klasse 1. Beispiel {namespace f=F3FluidViewHelpers} <f:link>...</f:link> F3FluidViewHelpersLinkViewHelper 2. Beispiel {namespace f=F3FluidViewHelpers} <f:form.textbox />
  • 59. Grundkonzepte von Fluid Variablen $this->view->assign(‘blogTitle’, $blog->getTitle()); <h1>Der Name des Blogs ist: {blogTitle}</h1>
  • 60. Grundkonzepte von Fluid Object Accessors $this->view->assign(‘blog’, $blog); <h1>Der Name des Blogs ist: {blog.title}</h1> <p>Autor: {blog.author}</p> Getter / Setter werden automatisch aufgerufen
  • 61. Grundkonzepte Arrays <f:link actionName=“show“ arguments=“{blog : blog, name : ‘Hallo’}“> Posting anzeigen </f:link> JSON-Objektsyntax
  • 62. Beispiel-Template aus dem Blog-Example BlogExample/Resources/Private/Templates/Blog/index.html
  • 63. Beispiel-Template aus dem Blog-Example BlogExample/Resources/Private/Templates/Blog/edit.html
  • 64. Migration von v4 nach v5 TYPO3 Transition Days
  • 65. FLOW3 - der aktuelle Stand Developing TYPO3 5.0 ...
  • 66. Der aktuelle Stand Reflection Locale AOP Resource Log Object MVC Config. Session Package Cache Utility Persistence Error Validation Property Event 0% 50% 100% 0% 50% 100% 0% 50% 100%
  • 67. Nächste Schritte erste FLOW3-Beta in 3 Monaten erste Pilotprojekte schon jetzt Weiterentwicklung des CMS Geplanter Beta-Release von TYPO3 5.0: Anfang 2010
  • 68.
  • 69. The Berlin Manifesto We, the participants of the T3TD08 state that ... TYPO3 v4 continues to be actively developed v4 development will continue after the the release of v5 Future releases of v4 will see its features converge with those in TYPO3 v5 TYPO3 v5 will be the successor to TYPO3 v4 Migration of content from TYPO3 v4 to TYPO3 v5 will be easily possible TYPO3 v5 will introduce many new concepts and ideas. Learning never stops and we'll help with adequate resources to ensure a smooth transition.
  • 70. 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
  • 71.
  • 72. Extbase — Das neue Framework für Extensions quot;Nachfolgerquot; von tslib_pibase Ausgewählte Komponenten und Paradigmen von FLOW3 wurden auf TYPO3 Version 4.3 portiert Transparente Persistenz des Domain-Models Model-View-Controller Validierung Ziele Schon jetzt mit „FLOW3-Paradigmen“ programmieren Migration des Codes vereinfachen Lernpfad zu TYPO3 v5 eröffnen
  • 73. Controlle r Model Domain View Oth er Stu ff
  • 74. Kickstarter für Extensions Nachfolger für den bisherigen Kickstarter Release geplant für Juli 2009 basiert auf den Prinzipien des Domain-Driven Design Projekt des Google Summer of Code 2009
  • 75. Fluid — Die Template-Engine für FLOW3 und v4.x Fluid steht ab der Version 4.3 zur Verfügung automatische Portierung des Kerns von Fluid an TYPO3 v4 angepasste Tags und View-Helper Standard Template-Engine für Extbase
  • 77.
  • 78. Links FLOW3 Website http://flow3.typo3.org TYPO3 Forge http://forge.typo3.org Download https://svn.typo3.org/FLOW3/Distribution/trunk https://svn.typo3.org/FLOW3/Distribution/branches/ BlogExample Fluid http://forge.typo3.org/projects/package-fluid http://blog.typoplanet.de