TYPO3 Neos Ein technischer Überblick
Patrick Lobacher Geschäftsführer 24.06.2013
TYPO3 Neos Ein technischer berblick Patrick Lobacher Geschftsfhrer - - PowerPoint PPT Presentation
24.06.2013 TYPO3 Neos Ein technischer berblick Patrick Lobacher Geschftsfhrer DWX13 / TYPO3 Neos - ein technischer berblick ber den Referenten Patrick Lobacher Geschftsfhrer typovision GmbH 42 Jahre, glcklich verheiratet,
Patrick Lobacher Geschäftsführer 24.06.2013
(c) 2013 - typovision GmbH | Thema der Präsentation | Autor | www.typovision.de DWX13 / TYPO3 Neos - ein technischer Überblick
2
Über den Referenten
Geschäftsführer typovision GmbH
Veröffentlichungen:
Webentwicklung
Certification, Extbase und Content Editorial
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de DWX13 / TYPO3 Neos - ein technischer Überblick
3
Über die typovision GmbH
TYPO3 PLATINUM MEMBER
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de
4
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de DWX13 / TYPO3 Neos - ein technischer Überblick
5
TYPO3 Neos - the next generation CMS
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de DWX13 / TYPO3 Neos - ein technischer Überblick
6
TYPO3 Neos - the next generation CMS
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de DWX13 / TYPO3 Neos - ein technischer Überblick
7
Content Management Framework“
Bundesliga-Vereinen, Discounter, Autovermieter, Öffentliche Träger
Geschichte von TYPO3 Neos beginnt bei TYPO3 CMS
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de DWX13 / TYPO3 Neos - ein technischer Überblick
8
Entschluss gefasst, TYPO3 von Grund auf neu zu schreiben
und nach wenigen Monaten von Karsten Dambekalns flankiert
Abgrenzung zum TYPO3 CMS festgelegt
http://typo3.org/roadmap/berlin-manifesto/
Geschichte von TYPO3 Neos: TYPO3 Phoenix
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de DWX13 / TYPO3 Neos - ein technischer Überblick
9
Handling, Datenbank-Handling, Templating, ...) => daher Abspaltung
bereits in TYPO3 CMS Extensions zu schreiben, die in TYPO3 Flow mit geringen Änderungen lauffähig sind
(ehemals FLOW3) als Final veröffentlicht
Geschichte von TYPO3 Neos: TYPO3 Flow und Ne0s
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de DWX13 / TYPO3 Neos - ein technischer Überblick
10
Geschichte von TYPO3 Neos: Die TYPO3 Welt
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de
11
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de DWX13 / TYPO3 Neos - ein technischer Überblick
12
Die Architektur von TYPO3 Neos - Backend
Fluid Modern Templating Engine TYPO3CR Content Repository (JCR / Sling) TypoScript TypoScript 2.0 - next Generation Forms Form API & Form Builder Expose Extensible admin interface Eel Embedded Expression Language
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de DWX13 / TYPO3 Neos - ein technischer Überblick
13
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
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de
14
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de DWX13 / TYPO3 Neos - ein technischer Überblick
15
Concerns, Cross cutting concerns)
TYPO3 Flow - Basis Design
Achtung: Buzzword- Bingo :-)
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de DWX13 / TYPO3 Neos - ein technischer Überblick
16
Ubiquitous Language (z.B. Models)
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de DWX13 / TYPO3 Neos - ein technischer Überblick
17
„PHPDoc Annotations“
über Annotations möglich
TYPO3 Flow - Domain Model
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de DWX13 / TYPO3 Neos - ein technischer Überblick
18
zu Query zurück
„Benutzung“ der Daten
TYPO3 Flow - Repository
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de DWX13 / TYPO3 Neos - ein technischer Überblick
19
Annotation
(am Ende der Action)
(am Anfang der Action)
TYPO3 Flow - Controller
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de DWX13 / TYPO3 Neos - ein technischer Überblick
20
unterstützen den View
Security, Schleifen, If, Formatierung, Widgets, ...,
TYPO3 Fluid - modernes Templating
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de
21
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de DWX13 / TYPO3 Neos - ein technischer Überblick
22
escapeshellcmd() und escapeshellarg()
date.timezone= "Europe/Berlin"
Datenbank verwendet werden)
Systemvoraussetzungen von TYPO3 Neos
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de DWX13 / TYPO3 Neos - ein technischer Überblick
23
(Dependency Manager für PHP) cd /your/htdocs/ curl -s https://getcomposer.org/installer | php php ./composer.phar create-project --no-dev -- stability alpha typo3/neos-base-distribution TYPO3- Neos-1.0-alpha3
benötigten Modulen (inkl. 3rd Party wie Doctrine 2, Aloha, ...)
Installation von TYPO3 Neos
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de DWX13 / TYPO3 Neos - ein technischer Überblick
24
sudo ./flow flow:core:setfilepermissions shelluser wwwuser wwwgroup
NameVirtualHost *:80 <VirtualHost *:80> DocumentRoot "/pfad/zur/installation/TYPO3-Neos-1.0-alpha3/Web/" # Während der Entwicklung sollte die # folgende Zeile auskommentiert werden Setenv FLOW_CONTEXT Production ServerName neos.demo </VirtualHost>
127.0.0.1 neos.demo
Installation von TYPO3 Neos
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de DWX13 / TYPO3 Neos - ein technischer Überblick
25
http://neos.demo/setup/
Installation von TYPO3 Neos
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de DWX13 / TYPO3 Neos - ein technischer Überblick
26
der Datei:
Configuration/Settings.yaml
Installation von TYPO3 Neos
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de DWX13 / TYPO3 Neos - ein technischer Überblick
27
Userverwaltung angelegt werden
Installation von TYPO3 Neos
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de DWX13 / TYPO3 Neos - ein technischer Überblick
28
Website
Installation von TYPO3 Neos
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de DWX13 / TYPO3 Neos - ein technischer Überblick
29
Installation von TYPO3 Neos
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de
30
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de DWX13 / TYPO3 Neos - ein technischer Überblick
31
, RequireJS, EmberJS, ...)
Features von TYPO3 Neos
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de DWX13 / TYPO3 Neos - ein technischer Überblick
32
Jenkins)
Features von TYPO3 Neos
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de DWX13 / TYPO3 Neos - ein technischer Überblick
33
Features von TYPO3 Neos - Screenshots
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de DWX13 / TYPO3 Neos - ein technischer Überblick
34
Features von TYPO3 Neos - Screenshots
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de DWX13 / TYPO3 Neos - ein technischer Überblick
35
Features von TYPO3 Neos - Screenshots
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de
36
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de DWX13 / TYPO3 Neos - ein technischer Überblick
37
(dient der Identifikation)
(z.B. Document, Folder, AbstractNode, Content, ContentCollection...)
(Abhängig vom NodeType)
konfigurierbar
Page Content Section Content Element Site root
TYPO3 Neos Internas: Node Structure
Domain Model
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de DWX13 / TYPO3 Neos - ein technischer Überblick
38
TYPO3 Neos Internas: Node Zugriff
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de DWX13 / TYPO3 Neos - ein technischer Überblick
39
basierte Verarbeitungssprache
Value, ...
Objekt „menu“ oder Seiteneigenschaften im Objekt „page“)
(ähnlich stdWrap-Funktionen in TYPO3 CMS)
TYPO3 Neos Internas: TypoScript
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de DWX13 / TYPO3 Neos - ein technischer Überblick
40
<!DOCTYPE html> <html lang="en"> <head> <!-- {namespace typo3=TYPO3\Neos\ViewHelpers}{namespace typoScript=TYPO3\TypoScript\ViewHelpers}
<meta charset="utf-8"> <f:base/> <meta name="generator" content="TYPO3 Flow" /> <title>Default Template</title> <f:section name="stylesheets"> <link rel="stylesheet" href="../../../Public/Stylesheets/reset.css" media="all" /> </f:section> <f:section name="javascripts"> <script src="../../../Public/JavaScript/main.js"></script> </f:section> </head> <body class="js-off page-landing" id="typo3org"> <f:section name="body"> <div class="p t3-reloadable-content" id="page"> <!-- ### content ### --> <div class="c cl" id="content"> <!-- ### aside ### --> <div class="a" id="aside"> <typoScript:renderTypoScript path="parts/subMenu" />
TYPO3 Neos Internas: TypoScript - Fluid Template
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de DWX13 / TYPO3 Neos - ein technischer Überblick
41
include: TypoScripts/Library/ContentElements.ts2 namespace: TypoScript=TYPO3.TypoScript page = Page page.headerData { stylesheets = Template stylesheets { templatePath = 'resource://TYPO3.NeosDemoTypo3Org/Private/Templates/Page/Default.html' sectionName = 'stylesheets' } javascripts = Template javascripts { templatePath = 'resource://TYPO3.NeosDemoTypo3Org/Private/Templates/Page/Default.html' sectionName = 'javascripts' } title = Template title.templatePath = 'resource://TYPO3.NeosDemoTypo3Org/Private/Templates/TypoScriptObjects/ TitleMenu.html' title.items = ${q(node).add(q(node).parents())} title << 1.wrap(prefix:'<title>', suffix: '</title>') }
TYPO3 Neos Internas: TypoScript - Beispiel - Teil 1
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de DWX13 / TYPO3 Neos - ein technischer Überblick
42
page.body { templatePath = 'resource://TYPO3.NeosDemoTypo3Org/Private/Templates/Page/Default.html' sectionName = 'body' parts { mainMenu = Menu mainMenu { entryLevel = 2 templatePath = 'resource://TYPO3.NeosDemoTypo3Org/Private/Templates/TypoScriptObjects/ MainMenu.html' maximumLevels = 2 } subMenu = Menu subMenu { entryLevel = 3 templatePath = 'resource://TYPO3.NeosDemoTypo3Org/Private/Templates/TypoScriptObjects/ SubMenu.html' maximumLevels = 3 } breadcrumb = Template breadcrumb { templatePath = 'resource://TYPO3.NeosDemoTypo3Org/Private/Templates/TypoScriptObjects/ BreadcrumbMenu.html' items = ${q(node).add(q(node).parents())}
TYPO3 Neos Internas: TypoScript - Beispiel - Teil 2
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de DWX13 / TYPO3 Neos - ein technischer Überblick
43
myObject = MyObject { value = 'Rocky' value << 1.wrap(prefix: 'Der ', suffix: ' ist der Beste!') } # Resultat ist 'Der Rocky ist der Beste!</h1>'
TYPO3 Neos Internas: TypoScript - Prozessoren
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de DWX13 / TYPO3 Neos - ein technischer Überblick
44
der Art myObject.foo = ${q(node).property('bar')} formulieren
(DSL) zu erstellen.
sich der Autor der DSL auf die Semantik konzentrieren kann
${foo.bar} // Traversal ${foo.bar()} // Method call ${foo.bar().baz()} // Chained method call ${foo.bar("arg1", true, 42)} // Method call with arguments ${12 + 18.5} // Calculations are possible ${foo == bar} // ... and comparisons ${foo.bar(12+18.5, foo == bar)} // and of course also use it inside arguments ${[foo, bar]} // Array Literal ${{foo: bar, baz: test}} // Object Literal
TYPO3 Neos Internas: Eel - Embedded Expression Language
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de DWX13 / TYPO3 Neos - ein technischer Überblick
45
Eel zu verarbeiten
Zugriff auf alle Eigenschaften einer Node
Filterausdrücke in „Fizzle“
Gibt alle Kinder der TYPO3CR Node zurück
Gibt alle Eltern der TYPO3CR Node zurück
TYPO3 Neos Internas: FlowQuery
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de DWX13 / TYPO3 Neos - ein technischer Überblick
46
„comments“, deren Eigenschaft „spam“ auf dem Wert „false“ steht.
numberOfComments = ${q(node).children('comments').children("[spam = false]").count()}
breadcrumb = Template breadcrumb { templatePath = 'resource://TYPO3.NeosDemoTypo3Org/Private/Templates/ TypoScriptObjects/BreadcrumbMenu.html' items = ${q(node).add(q(node).parents())} } {namespace neos=TYPO3\Neos\ViewHelpers} <f:if condition="{items}"> <ul class="breadcrumbs"> <f:for each="{items}" as="item" reverse="TRUE"> <f:if condition="{item.hiddenInIndex} == 0"> <li> <neos:link.node node="{item}">{item.label}</neos:link.node> </li> </f:if> </f:for>
TYPO3 Neos Internas: FlowQuery - Beispiele
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de
47
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de DWX13 / TYPO3 Neos - ein technischer Überblick
48
Architekten, UX-Experten, Designer, Doku, Tester, JS-Spezialisten, ...
Mitarbeit bei TYPO3 Neos: We need you!!
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de DWX13 / TYPO3 Neos - ein technischer Überblick
49
Mitarbeit bei TYPO3 Neos: Kunden gesucht
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de
50
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de DWX13 / TYPO3 Neos - ein technischer Überblick
51
http://neos.typo3.org/
http://neos.typo3.org/download.html
http://flow.typo3.org/
http://docs.typo3.org/neos/TYPO3NeosDocumentation/Index.html
http://flow.typo3.org/documentation.html
Quellen und Informationen
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de DWX13 / TYPO3 Neos - ein technischer Überblick
52
http://forge.typo3.org/projects/typo3neos
http://forge.typo3.org/projects/flow3
http://www.typovision.de/de/kompetenzen/typo3/
Quellen und Informationen
(c) 2013 - typovision GmbH | DWX13 / TYPO3 Neos - ein technischer Überblick | Patrick Lobacher | 24.06.2013 | www.typovision.de
53