Drupal 8 Informatiesessie
© Fedict 2009. All rights reserved
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. 2
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. 3
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. 4
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. 5
Gebruikerservaring WYSIWYG in Core, Afbeeldingen in text
© Fedict 2009. All rights reserved | p. 6
Gebruikerservaring In-line editeren
© Fedict 2009. All rights reserved | p. 7
Gebruikerservaring Echte inhoud-preview
© Fedict 2009. All rights reserved | p. 8
Gebruikerservaring Mobile-first
© Fedict 2009. All rights reserved | p. 9
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
Date/Datetime
Link
Phone
Email
© Fedict 2009. All rights reserved | p. 13
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)
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. © Fedict 2009. All rights reserved | p. 23
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 codestack 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 cachingfunctionaliteiten, 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 “functionaliteitsfreeze” 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-tuinkeuken-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
VANDAAG!!!!!
© Fedict 2009. All rights reserved | p. 34
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
[email protected] | www.fedict.belgium.be
© Fedict 2009. All rights reserved
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-100contributed-modules-drupal-8
http://hojtsy.hu/multilingual-drupal8
© Fedict 2009. All rights reserved | p. 37