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, 3 rd 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?
JSR-170 & TYPO3? De Java Bridge geeft ons de mogelijkheid om een Jackrabbit repository te benaderen vanuit PHP Dit is een tijdelijke oplossing!
JSR-170 & TYPO3? De Java Bridge geeft ons de 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
JSR-170 & TYPO3? De Java Bridge geeft ons de 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!