Gimme Five! Op weg naar TYPO3 5.0 'Phoenix'
Waarom TYPO3 5.0?
Waarom TYPO3 5.0?
Enkele redenen:
Waarom TYPO3 5.0?
Enkele redenen: Complexiteit
De TYPO3 Core architectuur heeft zijn limiet bereikt en is moeilijk te leren
Waarom TYPO3 5.0?
Enkele redenen: Complexiteit
De TYPO3 Core architectuur heeft zijn limiet bereikt en is moeilijk te leren
Datamodel
De huidige aanpak is niet flexibel genoeg en directe database toegang (zelfs met DBAL) veroorzaakt problemen
Waarom TYPO3 5.0?
Enkele redenen: Complexiteit
De TYPO3 Core architectuur heeft zijn limiet bereikt en is moeilijk te leren
Datamodel
De huidige aanpak is niet flexibel genoeg en directe database toegang (zelfs met DBAL) veroorzaakt problemen
PHP6
De nieuwe mogelijkheden van PHP6 laten een betere en ontwikkelingsvriendelijkere architectuur toe
Waarom TYPO3 5.0?
Enkele redenen: Complexiteit
De TYPO3 Core architectuur heeft zijn limiet bereikt en is moeilijk te leren
Datamodel
De huidige aanpak is niet flexibel genoeg en directe database toegang (zelfs met DBAL) veroorzaakt problemen
PHP6
De nieuwe mogelijkheden van PHP6 laten een betere en ontwikkelingsvriendelijkere architectuur toe
Connectiviteit
Een nieuwe architectuur biedt betere mogelijkheden voor externe toegang (SOAP, WebDAV, 3rd party tools)
Waarom TYPO3 5.0?
Reden genoeg?
Waarom TYPO3 5.0?
Reden genoeg? Over een bepaalde tijd zal TYPO3 10.000 extensies omvatten, variërend in kwaliteit m.b.t code en veiligheid
Waarom TYPO3 5.0?
Reden genoeg? Over een bepaalde tijd zal TYPO3 10.000 extensies omvatten, variërend in kwaliteit m.b.t code en veiligheid TYPO3 wordt steeds meer toegepast in kritieke gebieden in grootschalige ondernemingen
Waarom TYPO3 5.0?
Reden genoeg? Over een bepaalde tijd zal TYPO3 10.000 extensies omvatten, variërend in kwaliteit m.b.t code en veiligheid TYPO3 wordt steeds meer toegepast in kritieke gebieden in grootschalige ondernemingen Ontwikkelingsteams zullen groeien en dit vereist een meer modulair en toegankelijk systeem
Waarom TYPO3 5.0?
Reden genoeg? Over een bepaalde tijd zal TYPO3 10.000 extensies omvatten, variërend in kwaliteit m.b.t code en veiligheid TYPO3 wordt steeds meer toegepast in kritieke gebieden in grootschalige ondernemingen Ontwikkelingsteams zullen groeien en dit vereist een meer modulair en toegankelijk systeem Nieuwe Cms-projecten kunnen nieuwe technologieën ongeacht erfenis gebruiken Waarom zouden wij dit niet doen?
Doelen van het project Goal!
Core doelen
Creeëren van een schone code basis
Behouden van de TYPO3 'ziel'
Modulariteit en abstractie van de core functies
Flexibele en schaalbare architectuur
Gebruik van standaarden en bewezen technieken
Gebruikersgemak op alle niveau's
Reeel migratie pad
Uitdaging architectuur
Gelaagde architectuur – Pretty easy
Pretty: het laagste niveau voldoet aan hoogste esthetische vereisten
Easy: het hoogste niveau is eenvoudig in gebruik, zelfs voor PHP rookies
Ingebouwde veiligheid
Data toegang middels objecten
Cross-site-scripting en SQL injecties niet meer mogelijk
Migratie & acceptatie
Parallelle ontwikkeling van TYPO3 4.x en 5.0
Investering in kennis en ontwikkeling waarborgen
Vroege integratie in de community
Eenvoudige integratie van belangrijke onderdelen
Bewezen concepten blijven behouden
NIEUWE ARCHITECTUUR
NIEUWE ARCHITECTUUR
Tabula Rasa TYPO3 5.0 ontwikkeling begint 'from scratch'
NIEUWE ARCHITECTUUR
Tabula Rasa TYPO3 5.0 ontwikkeling begint 'from scratch' Verbeterde coding richtlijnen en coding stijlgids met woordenlijst
NIEUWE ARCHITECTUUR
Tabula Rasa TYPO3 5.0 ontwikkeling begint 'from scratch' Verbeterde coding richtlijnen en coding stijlgids met woordenlijst Sommige basiscomponenten worden ontworpen en geimplementeerd, dan worden andere componenten gevormd en met code van de 4.x branch gevuld
NIEUWE ARCHITECTUUR
Componenten Vrijwel elk onderdeel van TYPO3 kan vervangen worden door een nieuwe component die dezelfde API verstrekt
NIEUWE ARCHITECTUUR
Componenten Vrijwel elk onderdeel van TYPO3 kan vervangen worden door een nieuwe component die dezelfde API verstrekt Componenten hebben sub- (sub-) ... componenten
NIEUWE ARCHITECTUUR
Componenten Vrijwel elk onderdeel van TYPO3 kan vervangen worden door een nieuwe component die dezelfde API verstrekt Componenten hebben sub- (sub-) ... componenten Elke component heeft een duidelijke interface
NIEUWE ARCHITECTUUR
Componenten Vrijwel elk onderdeel van TYPO3 kan vervangen worden door een nieuwe component die dezelfde API verstrekt Componenten hebben sub- (sub-) ... componenten Elke component heeft een duidelijke interface
De content repository Say What?
Huidige situatie
RDBMS via DBAL
Boomstructuren worden opgeslagen in verschillende tabellen
Data wordt opgeslagen in tabelvelden
Wanneer eigenschappen worden toegevoegd, moet een nieuw veld gemaakt worden
Records worden gequeried middels SQL
Abstractie op query niveau
Niet alle data wordt opgeslagen in de database, maar in bestanden
Nieuwe situatie
TYPO3 CR ODBMS
Een Content Repository is een soort database om hierarchische data in op te slaan Bovenop een reguliere databron (MySQL, Oracle, CSV, ...) Boomstructuren worden opgeslagen als knopen (nodes), data als eigenschappen Ingesloten records worden opgeslagen als subknopen (subnodes) Data kan gequeried worden middels SQL en XPATH Alle opslag en uitlezen van gegevens wordt middels objecten gedaan. Alle content (inclusief bestanden) wordt opgeslagen in de content repository
B-Trees en andere planten Say What?
Voordelen van een
Content Repository
Flexibele en uitbreidbare datastructuur
Object gebaseerde opslag en lezen
Combineert alle voordelen van een “navigational” en relationele databases
De veiligheid kan op een hoger niveau worden afgedwongen
Betere opbouw en gemakkelijker in gebruik voor de ontwikkelaar
Voordelen van een
Content Repository
Databron abstractie in plaats van database abstractie
Dat kan op diverse manieren worden opgeslagen, een database is één van deze manieren
Vanwege een hoger niveau van abstractie kunnen database specifieke functies en specialiteiten als transacties, stored procedures, partitioning ... gebruikt worden op implementatieniveau van de CR
Snelheid
Afhankelijk van de CR implementatie kan een immense tijdswinst geboekt worden bij leestoegang van de inhoudsboom
JSR-170
Is it a rocket? Is it a plane? No, it's ...
JSR-170
Is it a rocket? Is it a plane? No, it's ...
in ieder geval geen SUPER-GROVER
JSR-170
Java Specification Request N° 170 Specificeert een standaard API om toegang te krijgen tot content repositories in Java onafhankelijk van de implementatie
JCR implementaties: DAY CRX (reference implementation) Jackrabbit (open source)
JSR-170 & TYPO3 ?
In TYPO3 5.0 willen we een content repository gebaseerd op generieke knopen en eigenschappen (generic nodes and properties) JSR-170 definieert een volledige API om zo'n repository te benaderen, inclusief
Sessie afhandelingen
Transacties
Workspaces
Waarom zouden we het wiel opnieuw uitvinden?
De Java Bridge geeft ons de
JSR-170 & TYPO3 ?
mogelijkheid om een Jackrabbit repository te benaderen vanuit PHP – Dit is een tijdelijke oplossing!
De Java Bridge geeft ons de
JSR-170 & TYPO3 ?
mogelijkheid om een Jackrabbit repository te benaderen vanuit PHP – Dit is een tijdelijke oplossing! TYPO3 5.0 zal zonder Java draaien – door de PHP gebaseerde TYPO3 CR te benaderen, gebaseerd op de API's gedefinieerd in JSR-170
De Java Bridge geeft ons de
JSR-170 & TYPO3 ?
mogelijkheid om een Jackrabbit repository te benaderen vanuit PHP – Dit is een tijdelijke oplossing! TYPO3 5.0 zal zonder Java draaien – door de PHP gebaseerde TYPO3 CR te benaderen, gebaseerd op de API's gedefinieerd in JSR-170 Het doel: Een flexibele en krachtige content repository voor TYPO3, geschreven in PHP 6
TYPO3 CR gebruikt de JSR-170 interfaces waar mogelijk
He has no more to say! Bedankt voor jullie tijd!