Das Open Source Enterprise CMS TYPO3 Neos hat im Dezember 2013 das Licht der Welt erblickt. Aber was leistet dieser Newcomer in einer Welt der etablierten Systeme und wie unterscheidet er sich von Mitbewerbern? Welche technischen Komponenten bilden das Fundament und was ist notwendig um möglichst einfach und schnell den Einstieg zu bekommen? Wo sind die Stärken und wo die Schwächen dieses innovativen Systems? Show-Cases bereits realisierter Websites und Portale runden den Vortrag ab. Für Entscheider und Entwickler gleichermaßen geeignet. - See more at: http://www.developer-week.de/Programm/Veranstaltung/(event)/14251#sthash.abVknRT9.dpuf
2. Responsive Webdesign verkaufen
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 16.07.2014
TYPO3 Neos - Next Generation CMS ]
Patrick Lobacher
Geschäftsführer +Pluswerk GmbH
• 43 Jahre, glücklich verheiratet, wohnhaft in München
• Selbständig im Bereich Webentwicklung seit 1994
• Autor von 10 Fachbüchern und > 50 Fachartikeln zum
Thema TYPO3 und Webentwicklung
• Mitglied im TYPO3 Education Committee
• Speaker, Trainer, Consultant, Coach, Nerd
Veröffentlichungen:
3. Responsive Webdesign verkaufen
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 16.07.2014
TYPO3 Neos - Next Generation CMS ]
Agentur für digitale Kommunikation
+[ 9 ] Standorte in Deutschland
+[ 110 ] Mitarbeiter
+[ 999 ] realisierte Projekte mit Magento und TYPO3
4. Responsive Webdesign verkaufen
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 16.07.2014
TYPO3 Neos - Next Generation CMS ]
Agenda
• Was ist TYPO3 Neos?
• Features
• Konzepte
• Architektur & Internas
• Showcases
• Links
TYPO3 Neos - Next Generation CMS
Slides: www.lobacher.de/dwx14-neos
7. Responsive Webdesign verkaufen
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 16.07.2014
TYPO3 Neos - Next Generation CMS ]
Die Geschichte von TYPO3 Neos beginnt bei TYPO3 CMS
!
• TYPO3 CMS ist ein „Enterprise Open Source
Content Management Framework“
• TYPO3 CMS existiert seit 1998
• Erfunden vom Dänen Kaspar Skårhøj
• ca. 500.000 Installationen weltweit / > 5 Mio Downloads
• Einsatz in DE z.B. bei > 50% aller DAX 500 Unternehmen, > 50% aller
Bundesliga-Vereinen, Discounter, Autovermieter, Öffentliche Träger
• > 6.000 Extensions
• > 150.000 Entwickler weltweit
• > 2000 Agenturen weltweit
• Finanziert und unterstützt von der TYPO3 Association
8. Responsive Webdesign verkaufen
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 16.07.2014
TYPO3 Neos - Next Generation CMS ]
Die Geschichte von TYPO3 Neos: TYPO3 Phoenix
!
• Auf den ersten T3DD (TYPO3 Developer Days) im Jahr 2006 wurde der
Entschluss gefasst, TYPO3 von Grund auf neu zu schreiben
• Codename: TYPO3 Phoenix (bzw. TYPO3 5.0)
• Einige benötigte/gewünschten Features gab es damals in PHP noch nicht
und mussten komplett neu implementiert werden: Content Repository
(JSR-170), Aspect Oriented Programming, Domain Driven Design,
Dependency Injection, ...
• Mit dem „Berlin Manifesto“ wurde 2008 der Rahmen und die Abgrenzung
zum TYPO3 CMS festgelegt
http://typo3.org/roadmap/berlin-manifesto/
9. Responsive Webdesign verkaufen
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 16.07.2014
TYPO3 Neos - Next Generation CMS ]
Die Geschichte von TYPO3 Neos: TYPO3 Flow und Neos
!
• Viele Grundfunktionen eines CMS sind nicht CMS-spezifisch (Session-
Handling, Datenbank-Handling, Templating, ...) => daher Trennung dieser
Funktionalitäten in ein eigenes Framework => TYPO3 Flow
• Durch die Einführung von Extbase im Jahr 2009 wurde es möglich, bereits
in TYPO3 CMS Extensions zu schreiben, die in TYPO3 Flow mit geringen
Änderungen lauffähig sind
• Am 20. Oktober 2011 wurde das Application Framework TYPO3 Flow
(ehemals FLOW3) als Final veröffentlicht (Aktuell 2.2.0)
• TYPO3 Neos ist eine Applikation die auf TYPO3 Flow basiert
• Erste Version 1.0.0 am 10.12.2013 / Aktuell 1.1.0 am 19.06.2014
10. Responsive Webdesign verkaufen
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 16.07.2014
TYPO3 Neos - Next Generation CMS ]
Die TYPO3 Welt
• Dachmarke TYPO3
• TYPO3 CMS
(hat kein eigenes Logos)
• TYPO3 Flow
• TYPO3 Neos
11. Responsive Webdesign verkaufen
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 16.07.2014
TYPO3 Neos - Next Generation CMS ]
TYPO3 Neos: Positionierung
• Es gibt ab Dezember 2013 zwei unabhängige CMS aus dem Hause TYPO3:
• TYPO3 CMS 6.x (4.7, 6.1, 6.2 LTS)
• TYPO3 Neos 1.x (1.1)
• Technologisch haben beide NICHTS miteinander zu tun
• Es gibt (zur Zeit) KEINE automatische Migrationsmöglichkeiten von einem
der beiden Systeme zum anderen
• TYPO3 Neos ist NICHT der Nachfolger von TYPO3 CMS,
sondern ein eigenständiges CMS mit anderem Fokus
19. Responsive Webdesign verkaufen
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 16.07.2014
TYPO3 Neos - Next Generation CMS ]
Konzepte: Content-Dimension
Sprache de en fr
Land DE US CH
Multi-Varianten A B C
Ziel-Gruppen Marketing Vertrieb GF
CORE:!
UI:"
Personalisierung User1 User2 User3
Location based, Time-Zone, Channel, Device,…
20. Responsive Webdesign verkaufen
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 16.07.2014
TYPO3 Neos - Next Generation CMS ]
Konzepte: Content Cache
• Jedes TypoScript-Objekt
kann seine eigene Cache
Konfiguration besitzen
• @cache {
mode = 'cached'
maximumLifetime = '86400'
entryIdentifier {
node = ${node}
format = ${request.format}
}
entryTags {
# Whenever the node changes the matched condition could change
1 = ${'Node_' + documentNode.identifier}
# Whenever one of the parent nodes changes the layout could change
2 = ${'DescendantOf_' + documentNode.identifier}
}
}
CORE:!
UI:"
23. Responsive Webdesign verkaufen
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 16.07.2014
TYPO3 Neos - Next Generation CMS ]
Systemvoraussetzungen von TYPO3 Neos
!
• Webserver (empfohlen ist Apache 2.x mit aktiviertem mod_rewrite Modul)
• PHP 5.3.7 - 5.4.x (minimal wäre PHP 5.3.2 - dort kann es zu Problemen kommen)
• Folgende Funktionen müssen in PHP aktiviert sein: system, shell_exec,
escapeshellcmd, escapeshellarg, proc_open und exec()
• php.ini: memory_limit = 512M oder höher (empfohlen 1014M)
• php.ini: xdebug.max_nesting_level = 500 (sofern xdebug verwendet wird)
• php.ini: Fügen sie die folgende Optionen ans Ende hinzu: detect_unicode = Off
• php.ini: Zudem muss Magic_Quotes ausgeschaltet werden: magic_quotes_gpc = Off
• php.ini: Die Kommandozeile von Flow benötigt ferner noch eine Zeitzoneneinstellung:
date.timezone= „Europe/Berlin“
• Shell-Zugang
24. Responsive Webdesign verkaufen
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 16.07.2014
TYPO3 Neos - Next Generation CMS ]
Installation von TYPO3 Neos - Composer
• Die Installation erfolgt über „Composer“
(Dependency Manager für PHP) - Dafür ist Zugang zur Konsole nötig
$ cd /pfad/zum/webserver/
$ curl -sS https://getcomposer.org/installer | php
$ php /path/to/composer.phar create-project --no-
dev typo3/neos-base-distribution TYPO3-Neos-1.1
$ cd TYPO3-Neos-1.1
$ ./flow flow:core:setfilepermissions shelluser
wwwuser wwwgroup
http://neos.demo/setup/
25. Responsive Webdesign verkaufen
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 16.07.2014
TYPO3 Neos - Next Generation CMS ]
Die Architektur von TYPO3 Neos - Backend
!
Fluid
Modern Templating Engine
TYPO3CR
Content Repository
(JCR 170/ Sling)
TypoScript
TypoScript 2.0 - next Generation
Form
Form API & Form Builder
Expose
Extensible admin interface
Eel
Embedded Expression Language
FlowQuery
26. Responsive Webdesign verkaufen
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 16.07.2014
TYPO3 Neos - Next Generation CMS ]
Die Architektur von TYPO3 Neos - Frontend
!
EmberJS
JavaScript Web Application
Framework
Create.js
Web Editing Interface
Aloha / Hallo
HTML5 WYSIWYG Editor
VIE = viejs.org
Semantic Interaction Framework
RequireJS
JavaScript file and module loader
28. Responsive Webdesign verkaufen
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 16.07.2014
TYPO3 Neos - Next Generation CMS ]
Node Structure
!
• TYPO3CR Node
• Node Name
(dient der Identifikation)
• Node Type
(z.B. Document, Folder, AbstractNode, Content,
ContentCollection...)
• Properties
(Abhängig vom NodeType)
• Einfach erweiterbar und leicht
konfigurierbar
Page
Content Section
Content Element
Site root
Domain Model
29. Responsive Webdesign verkaufen
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 16.07.2014
TYPO3 Neos - Next Generation CMS ]
Node Type
• Jede TYPO3CR Node hat einen
sogenannten Node Type
• Node Types können in jedem Package über
YAML (Yet Another Markup Language)
definiert werden
• Jeder Node Type kann einen oder
mehrere Eltern-Typen haben. Wenn
diese spezifiziert sind, werden alle
Eigenschaften und Settings der Eltern
Types vererbt
• Zusätzlich ist es möglich Child-Nodes zu
definieren, die automatisch erstellt werden
30. Responsive Webdesign verkaufen
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 16.07.2014
TYPO3 Neos - Next Generation CMS ]
31. Responsive Webdesign verkaufen
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 16.07.2014
TYPO3 Neos - Next Generation CMS ]
Node Zugriff
!
• Der Zugriff auf Nodes erfolgt durch „NodePaths“
• Jede Seite ist ein Node, jedes Element auf einer Seite ebenfalls
/sites/typo3org/home/subpage/main/text1
content
section
pages
site root
33. Responsive Webdesign verkaufen
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 16.07.2014
TYPO3 Neos - Next Generation CMS ]
TypoScript
!
• TypoScript ist eine hierarchische, objektorientierte und Prototypen-
basierte Verarbeitungssprache
• Wird von Neos verwendet, um den Content flexibel zu rendern
• Objekte sind z.B. Array, Collection, Case, Menu, Page, Template, Plugin,
Value, ...
• Objekte haben Eigenschaften, die das Objekt „konfigurieren“
• TypoScript hat Zugriff auf den jeweiligen „Context“ (z.B. Seitenbaum im
Objekt „menu“ oder Seiteneigenschaften im Objekt „page“)
• Es gibt „Prozessoren“ die die Eigenschaftswerte verändern können
(ähnlich stdWrap-Funktionen in TYPO3 CMS)
!
34. Responsive Webdesign verkaufen
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 16.07.2014
TYPO3 Neos - Next Generation CMS ]
35. Responsive Webdesign verkaufen
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 16.07.2014
TYPO3 Neos - Next Generation CMS ]
36. Responsive Webdesign verkaufen
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 16.07.2014
TYPO3 Neos - Next Generation CMS ]
Eel - Embedded Expression Language
•Während TypoScript Zuweisungen und Prozessoren beinhaltet, kann
man mit Eel Ausdrücke der Art
myObject.foo = ${q(node).property('bar')}
formulieren
•Die Embedded Expression Language (Eel) ist ein Baustein um Domain
Specific Languages (DSL) zu erstellen.
•Eel stellt eine reichhaltige Syntax zur Verfügung um beliebige
Ausdrücke zu erstellen, damit sich der Autor der DSL auf die
Semantik konzentrieren kann
•Eel ist in Anlehnung an JavaScript (Subset) realisiert worden
38. Responsive Webdesign verkaufen
(c) 2014 - Patrick Lobacher | TYPO3 Neos - Next Generation CMS | www.plus-werk.com | 16.07.2014
TYPO3 Neos - Next Generation CMS ]
FlowQuery
• FlowQuery ist eine Art jQuery für das Content Repository
• FlowQuery stellt damit einen Weg dar, um Content (der ja eine TYPO3CR Node in Neos
ist) in Eel zu verarbeiten
• In FlowQuery gibt es Operationen:
• property
Zugriff auf alle Eigenschaften einer Node
• filter
Filterausdrücke in „Fizzle“
• children
Gibt alle Kinder der TYPO3CR Node zurück
• parents
Gibt alle Eltern der TYPO3CR Node zurück
• Weitere Operationen: add, count, first, get, is, last, ...