drupal 8 · d8 ondersteunt php7 performantiemetingen tonen 2x verbetering in performantie vs php5.x...
Post on 21-May-2020
12 Views
Preview:
TRANSCRIPT
© Fedict 2009. All rights reserved
Drupal 8
Informatiesessie
© Fedict 2009. All rights reserved | p. 2
Wat is Drupal
Drupal is een CMS (“Content Management
System”)
Ontwikkeld in PHP
Het is Open Source software
Bestaat uit een kernsoftware (Drupal Core) en
een gigantisch ecosysteem van add-ons (Modules,
Themes, Libraries)
© Fedict 2009. All rights reserved | p. 3
Wie gebruikt Drupal?
Klein
– Volkssterrenwacht Mira vzw
Groot
– Weather.com
– Whitehouse.gov
– Universiteit van Oxford
100+ websites v/d Federale overheid
– Fedweb.belgium.be
– Mobilit.belgium.be
– Premier.be
– Fedict.belgium.be
© Fedict 2009. All rights reserved | p. 4
A Brief History of Drupal
Eerste versies geschreven 1999-2001 door Dries
Buytaert, op dat ogenblik student in Gent
– Versie 1.0.0 in 2001
– Versie 4.7.0 in 2005
– Versie 6.0 in 2008
– Versie 7.0 in 2011
– Versie 8.0 in 2015
Technologie sterk geëvolueerd in die 15 jaar,
Drupal is mee geëvolueerd
© Fedict 2009. All rights reserved | p. 5
Grote vernieuwingen in Drupal 8
Sterk verbeterde “out-of-the-box” ervaring,
zowel voor gebruikers als voor ontwikkelaars
Meertaligheid diep ingebakken in “Core”
Volledige ombouw van de architectuur, gebruik
van standaardcomponenten
Enterprise-ready configuratie-beheerssysteem
Performantie-verbeteringen
Vernieuwd upgrade-mechanisme
© Fedict 2009. All rights reserved | p. 6
Gebruikerservaring WYSIWYG in Core, Afbeeldingen in text
© Fedict 2009. All rights reserved | p. 7
Gebruikerservaring In-line editeren
© Fedict 2009. All rights reserved | p. 8
Gebruikerservaring Echte inhoud-preview
© Fedict 2009. All rights reserved | p. 9
Gebruikerservaring Mobile-first
Gebruikerservaring Core themes responsive, HTML5
© Fedict 2009. All rights reserved | p. 10
Ontwikkelaars-ervaring Views in Core, Core-UI met views
Niet alleen zit
de Views
module in Core,
een hele hoop
Core-UI is
gebouwd in
Views en dus
aanpasbaar!
© Fedict 2009. All rights reserved | p. 11
Ontwikkelaars-ervaring Meer Blocks, Fieldable Blocks
Meer componenten die als afzonderlijk “Block”
gedefinieerd zijn en dus vlot getuned kunnen
worden.
Blokken zijn entities en kunnen extra velden
krijgen
Eén blok kan meerdere keren op één pagina
geplaatst worden (super voor bvb herhalende
menu’s e.d.)
© Fedict 2009. All rights reserved | p. 12
Ontwikkelaars-ervaring Nieuwe veldtypes
Entity Reference
© Fedict 2009. All rights reserved | p. 13
Date/Datetime
Link
Phone
Ontwikkelaars-ervaring Nieuw Theming Framework - Twig
© Fedict 2009. All rights reserved | p. 14
Ontwikkelaars-ervaring Drupal code Object-oriented
Er wordt expliciet gebruik gemaakt van
industrie-standaard PHP methodieken (PSR-4
voor classloading, PSR-3 voor logging)
Hoewel in D7 al OO code zat, is dit in D8 véél
en véél uitgebreider het geval, waardoor dit
ook voor extra modules zo zal zijn (Drupal-API’s
zullen grotendeels OO zijn)
© Fedict 2009. All rights reserved | p. 15
Meertaligheid Engels is nu *optioneel*
© Fedict 2009. All rights reserved | p. 16
Meertaligheid
Ingebouwde vertaaldownloads
Vertaalfuncties in theming en javascript
Nagenoeg alles vertaalbaar (bvb ook blocks)
© Fedict 2009. All rights reserved | p. 17
Moderne software architectuur Composer dependency-management
Drupal 7 gebruikte een eigen systeem (“drush
make”) om alle nodige componenten te
definiëren en automatisch te verzamelen.
Met de Composer-tool maakt men gebruik van
een standaardtool in de PHP-wereld.
Composer is een veel flexibeler en krachtiger
tool dan “drush make” ooit geweest is.
© Fedict 2009. All rights reserved | p. 18
Moderne software architectuur Symfony2 framework
HttpFoundation
HttpKernel
Dependency
Injection
EventDispatcher
Routing
Yaml
© Fedict 2009. All rights reserved | p. 19
Moderne software architectuur Symfony2 framework
Door een aantal Symfony2 componenten te
gebruiken kan men zich concentreren op pure
Drupal-functionaliteit.
HttpKernel & HttpFoundation componenten
maken het bvb. veel simpeler om RESTful
webservices te implementeren, terwijl de Twig
templating engine een directe verbetering
betekent op ‘t vlak van bescherming tegen
zaken als Cross-Site Scripting attacks.
© Fedict 2009. All rights reserved | p. 20
Moderne software architectuur Twig voor theming
Standaard front-end templating
voor PHP
Duidelijker afsplitsing tussen
PHP-code en theme-templating
vermindert de kans op (en de
nood voor!) “lelijke” hacks in
het theme (bvb ingebouwde
if/else logica zonder PHP)
Veel cleanere, lichtere
templates
© Fedict 2009. All rights reserved | p. 21
Moderne software architectuur RESTfull Webservices standaard
© Fedict 2009. All rights reserved | p. 22
Configuratiesysteem Textfile-gebaseerde configuratie (YAML)
© Fedict 2009. All rights reserved | p. 23
Drupal configuratie in D7 is een mix van
database tabellen, Drupal-variabelen, PHP in
settings.php en php-code in modules.
In D8 zit standaard de configuratie nog steeds in
de database, maar import/export van
configuratie en default-configuraties komen uit
.yml bestanden
Import/export functionaliteit gecombineerd
met file-versioning tools als GIT maken deploy
van wijzigingen tussen DEV en PROD veel
robuuster.
Configuratiesysteem Textfile-gebaseerde configuratie (YAML)
© Fedict 2009. All rights reserved | p. 24
Performantie-mogelijkheden
D8 heeft page-caching enabled by default –
nuttig voor onervaren gebruikers die dit
vergeten te activeren in D7
D8 is over ‘t algemeen véél trager dan D7 indien
op dezelfde manier gebruikt (!!!) – dit is o.a.
het gevolg van het gebruik van onderliggende
frameworks en meer OO-code, wat de code-
stack complexer maakt.
Merk wel : “als op dezelfde manier gebruikt”
© Fedict 2009. All rights reserved | p. 25
Performantie-mogelijkheden
D8 ondersteunt PHP7 performantiemetingen
tonen 2x verbetering in performantie vs PHP5.x
voor zelfde workload.
D8 biedt veel intelligentere caching-
functionaliteiten, waardoor bij een goede setup
op alle vlakken veel meer met cached content
gewerkt wordt goed geconfigureerd kan men
verwachten dat de eindperformantie van een D8
website beduidend *beter* zal zijn dan in D7
(D8 cached content zal sowieso sneller zijn dan
D7 uncached content)
© Fedict 2009. All rights reserved | p. 26
Performantie-mogelijkheden
Verandering die wellicht grootste impact zal
hebben op caching: Cache-tagging
Cache-tagging zorgt ervoor dat ieder gecachet
componentje “weet” op welke content of
configuratie het gebaseerd is
Als in die content of configuratie iets wijzigt, kan
Drupal dan enkel die gecachete componenten
updaten die er van afhangen ipv altijd héél de
cache leeg te maken
De “gebruiker” en de “rol” zijn ook cache-tags,
dus veel meer caching mogelijk voor ingelogde
gebruikers dan in D7
© Fedict 2009. All rights reserved | p. 27
Upgrade & Migratiepaden
Drupal upgrades tussen major versies zijn altijd
moeilijk geweest (met database-gefoefel,
moduleconflicten,…)
De “Migrate” module omzeilt dit door ipv een
site te upgraden, de content en configuratie te
“migreren” naar een nieuwe site.
In D8 zit het grootste deel van de bestaande
“Migrate” module in core, en wordt “migreren”
ook het standaard-upgrade-proces.
Migratie-paden standaard voorzien D6->D8 &
D7->D8
© Fedict 2009. All rights reserved | p. 28
Upgrade & Migratiepaden
Uiteraard gaat zo’n standaard migratie-proces
niet “vanzelf” werken voor sites die veel
modules gebruiken, maar D8-modules zullen
makkelijker zelf kunnen inhaken op die
migrate-API’s om upgrades van hun D6/D7
versies naar hun D8 versie te automatiseren.
Migrate was al de standaard tool om van andere
systemen naar Drupal te gaan (bvb. wij
migreren 100.000+ pagina’s aan content uit
Tridion naar Drupal7 via Migrate)
© Fedict 2009. All rights reserved | p. 29
What’s next? D9?
Grote verandering tss D7 & D8: we zullen niet
langer in een quasi volledige “functionaliteits-
freeze” zitten gedurende het leven van D8
Bug- en security fixes komen in 8.0.x versies
Iedere 6 maanden een 8.x.0 release waarin ook
extra functionaliteit toegevoegd wordt aan core
Pas als er voldoende veranderingen nodig lijken
die de compatibiliteit met 8.x breken zal er
begonnen worden aan een 9.x ontwikkeling.
© Fedict 2009. All rights reserved | p. 30
Wat met de extra modules?
Zeer veel “vaakgebruikte” functionaliteit zit
ingebouwd in D8-Core, het gemiddeld aantal
nodige extra modules zal zeker dalen tov. D7
Maar: absoluut niet alles zit in Core, belangrijke
extra modules zullen nodig blijven voor
“normale” websites
Er wordt hard gewerkt aan Drupal 8 versies van
veel modules maar het zal zeker nog enkele
maanden duren voor het ecosysteem echt
bruikbaar wordt voor complexere sites.
© Fedict 2009. All rights reserved | p. 31
Conclusies
D8 betekent een enorme sprong vooruit voor
Drupal, op vrijwel alle vlakken.
Initiële release zal voor de meeste projecten
nog niet bruikbaar zijn.
Optimaal gebruik zal wel een professionalisering
vergen van de developers en system
administrators, dit is niet langer een huis-tuin-
keuken-CMSje dat iedereen zelf effe op een
server kan kwakken.
© Fedict 2009. All rights reserved | p. 32
Wanneer wordt Drupal 8.0.0 gereleased?
© Fedict 2009. All rights reserved | p. 33
© Fedict 2009. All rights reserved | p. 34
VANDAAG!!!!!
© Fedict 2009. All rights reserved
Questions & Answers
© Fedict 2009. All rights reserved
Thank you
Fedict
WTC III
Simon Bolivarlaan 30 Bd Simon Bolivar
Brussel 1000 Bruxelles
TEL. +32 2 212 96 00 | FAX +32 2 212 96 99
info@fedict.belgium.be | www.fedict.belgium.be
References
https://www.drupal.org/drupal-8.0
Drupal 8 Preview Slideshow
https://events.drupal.org/barcelona2015
http://buytaert.net/making-drupal-8-fly
http://www.bluespark.com/status-top-100-
contributed-modules-drupal-8
http://hojtsy.hu/multilingual-drupal8
© Fedict 2009. All rights reserved | p. 37
top related