1. I n f o r m a t i c s Hans Rossel - www.koba.be
Drupal 8 CMS
26/02/2015 - hans.rossel@koba.be – Twitter @haro - www.koba.be
2. I n f o r m a t i c s Hans Rossel - www.koba.be
Wat is Drupal
3. I n f o r m a t i c s Hans Rossel - www.koba.be
Wat is Drupal
CMF
Content Management
Framework
http://api.drupal.org
CMF
Content Management
Framework
http://api.drupal.org
CMS
Open Source Content
Management Systeem
www.drupal.org
https://www.drupal.org/planet
https://groups.drupal.org
http://drupal.stackexchange.com
www.drupal.be
4. I n f o r m a t i c s Hans Rossel - www.koba.be
Situering: CMS concurrenten
Gesloten: SDL Tridion, Sharepoint, Documentum,
Stellent, Adobe CQ
Open source
Java: Alfresco, Liferay, OpenCMS
Python: Plone (Zope webserver, ZODB)
Php:
Wordpress
Joomla (Mambo)
Typo3
Asp: Dotnetnuke, Umbraco
5. I n f o r m a t i c s Hans Rossel - www.koba.be
Referenties
Media/Entertainment
• VRT, VTM, VT4, Vitaya, RTBF, FOX,
• Sony BMG Music, Universal Music Group, Warner
Bros, 20th
Century Fox, Michael Jackson, Eric Clapton
and Robbie Williams, Grammy awards, Emmy awards
• Le Soir, The Examiner, The Economist, Le Figaro,
Edipresse, Infoworld, Aj Jazeera, NBCSports
• Studio Brussel, Radio Netherlands Worldwide,
Australian Broadcast Company, BBC, CNN, Reuters
• Slate, Monthy Python and Lucas Arts
6. I n f o r m a t i c s Hans Rossel - www.koba.be
NGO, Gov & edu
• Human Rights watch, Amnesty
• World Food Programme, World Bank, United Nations, Europese
Unie, World Economic Forum
• Witte Huis, Vlaanderen, New York state senate, US Department
of Commerce, Belgische Premier, Belgische Monarchie, FOD
Financiën, the French government, the Dutch government, the
Australian Prime Minister and the British Government, London en
Athene.
• Universiteit Gent, Duke University, Strayer University, Portland
University, MIT, Stanford University and Harvard
• UitinVlaanderen, FARO, Louvre, Tate, Vlaamse Kunstcollectie
• NASA (nasa.gov)
• Linux Foundation, JAVA.net en Internet Systems Consortium
7. I n f o r m a t i c s Hans Rossel - www.koba.be
Referenties Bedrijven
• Telenet, ING, Garmnin, Ebay, Symantec, Nokia,
AHOLD, Randstad, Sony Ericsson, Paypal,
Twitter, Mattel, Nvidia, Rackspace, AT&T, FUJI
film, General Motors, Intel, Fujifilm, Fedex, IBM,
Cap Gemini, Accenture, Procter & Gamble en
Google (mlab), IKEA, Virgin, weather.com
Meer referenties:
http://www.buytaert.net/tag/drupal-sites
8. I n f o r m a t i c s Hans Rossel - www.koba.be
Geschiedenis Drupal
9. I n f o r m a t i c s Hans Rossel - www.koba.be
Geschiedenis
10. I n f o r m a t i c s Hans Rossel - www.koba.be
Geschiedenis
• Dries Buytaert
– 15 jan 2001: Drupal Open Source
• Recente versies focus
4.7: Form API, admin interface
5: CCK, Views
6: Multilingual support, theming layer
7: Usability (image), db abstractie, Unit testing,
php5.2.6, Semantic web, fields api, betere installer,
password salt, module en theme installer interface,
verbeterde multilingual support met field translation,
verbeterde tijdzone support, php stream wrappers voor
files, javascript overlays (jquery ui in core)
11. I n f o r m a t i c s Hans Rossel - www.koba.be
Drupal Project & Community
12. I n f o r m a t i c s Hans Rossel - www.koba.be
Omvang Drupal project
Drupal core wordt momenteel gebruikt op meer dan 1 miljoen
websites (http://drupal.org/project/usage), “3.2% van het internet”
– Core: >2500 ontwikkelaars (D8)
– Contrib: > 20000 Modules (= plugins, extensies), >35000
ontwikkelaars
Drupal.org: > 2.4 miljoen pagina's en > 1 miljoen users
100 talen, duizenden gratis Themes (en betalend Themeforest,
Templatemonster, ...)
3 jaarlijkse Drupalcons (Bogota/Los Angeles/Barcelona 2015),
Europese confs (Front End United, Developer Days, Business Day
Government Days), wereldwijd local Drupalcamps (50-1000
deelnemers), DUG (Drupal User groups).
13. I n f o r m a t i c s Hans Rossel - www.koba.be
Drupal Association
https://assoc.drupal.org
• Organiseert conferenties en codesprints
• Beheert drupal.org
• Ondersteunt uitbreiding van Drupal
• ±10 personeelsleden
• ±3 miljoen euro omzet
14. I n f o r m a t i c s Hans Rossel - www.koba.be
Acquia
https://www.acquia.com
• Dries Buytaert & Office of the CTO
• Ondersteunt ontwikkeling van Drupal
• Acquia Certified Developer
• 500+ personeelsleden
• 8000+ servers in Acquia Cloud
• $118.6 million in funding
• 4000+ klanten waaronder heel grote
(weather.com, nasa.gov)
15. I n f o r m a t i c s Hans Rossel - www.koba.be
Drupal 8
16. I n f o r m a t i c s Hans Rossel - www.koba.be
Drupal 8: Krachtlijnen
• “Proudly invented
here/Drupalisms”
=>”Proudly invented
elsewhere”: gebruik
van externe libraries
• Blokkendoos: Fields en
Views nog beter
geïntegreerd
• Authoring experience
17. I n f o r m a t i c s Hans Rossel - www.koba.be
http://drupalmotion.com/article/drupal-code-base (opmeting 2013!)
18. I n f o r m a t i c s Hans Rossel - www.koba.be
Lines of code
https://www.openhub.net/p/drupal
19. I n f o r m a t i c s Hans Rossel - www.koba.be
http://drupalmotion.com/article/drupal-code-base (opmeting 2013!)
20. I n f o r m a t i c s Hans Rossel - www.koba.be
http://drupalmotion.com/article/drupal-code-base
21. I n f o r m a t i c s Hans Rossel - www.koba.be
Verwijderde modules
• Blog
• Dashboard
• OpenID
• Overlay
• PHP filter
• Poll
=> in contrib
22. I n f o r m a t i c s Hans Rossel - www.koba.be
System requirements
https://www.drupal.org/requirements
PHP 5.4.5 or higher
Database
– MySQL 5.1.21/MariaDB/Percona/equivalent or
higher with PDO and an InnoDB-compatible
primary storage engine
– PostgreSQL 8.3 or higher with PDO
– SQLite 3.3.7 or higher
– Via contrib ook andere mogelijk zoalsMSSQL,
Oracleen MongoDB.
23. I n f o r m a t i c s Hans Rossel - www.koba.be
Drupal 8 Libraries
24. I n f o r m a t i c s Hans Rossel - www.koba.be
Drupal 8: Symfony 2 & OO
• Wat?
– Vervangen van de procedural PHP code door
Object Oriënted code, MVC patterns, Symfony2
componenten en PSR-4 class autoloader
• Waarom
– Drupal kerncode was verouderd, php4
ondersteunde geen OO, maar sinds GoPHP5
(2008) zijn alle hostingproviders PHP5.
– Problemen bij grote projecten
– Veel eigen code (drupalisms) voor zaken waar
betere oplossingen voor zijn in libraries:
Getting off the island,
PHP Framework Interop Group, Composer (
http://www.garfieldtech.com/blog/off-the-island-2013)
25. I n f o r m a t i c s Hans Rossel - www.koba.be
Drupal 8: Symfony 2 & OO
• Voordeel?
– Moderne php best practices, hedendaagse code
– Encapsulation ea OO principes
– Samenwerking met andere php projecten (vb Symfony
Tax component)
– Externe developers begrijpen Drupal, betere leercurve
• Nadeel
– Heel veel wijzigingen in Drupal, lange ontwikkelingstijd
– Drupal developers moeten zich herscholen.
– Code is complexer en meer verbose
– Veel werk om bestaande modules te porten.
– Security van Drupal afhankelijk van Symfony2
26. I n f o r m a t i c s Hans Rossel - www.koba.be
Symfony2 components
in Drupal 8
• HttpFoundation
• HttpKernel
• Routing
• DependencyInjection
• EventDispatcher
• YAML
• Twig
• Translation
• Process
• Serializer
• Validator
• Classloader (autoloading)
27. I n f o r m a t i c s Hans Rossel - www.koba.be
Drupal <8 learning curve
28. I n f o r m a t i c s Hans Rossel - www.koba.be
Backdrop CMS
www.backdropcms.org
• Fork van Drupal okt 2013, nu v1.0.3
• Quicksketch (Webform) en Jen Lampton (Twig
template engine)
• ±50 ontwikkelaars/sympathisanten, code op github
• Geen Symfony2, niet OO, abstracties verwijderen (vb
enkel mysql), qua code goed gelijkend op Drupal 7
• Configuration manager in json
• Geen van de andere nieuwe features van Drupal
• Goede snelheid/performance
• Bedoeld voor kleine websites door ontwikkelaars die
Drupal reeds kennen
29. I n f o r m a t i c s Hans Rossel - www.koba.be
Filesystem
d7 - d8
30. I n f o r m a t i c s Hans Rossel - www.koba.be
Drupal 8 directory structure
• /core/assets – Externe bibliotheken gebruikt door core: jQuery,
underscore, modernizer etc.
• /core/misc – Frontend code voor Drupal Core
• /core/includes – Basisfunctionaliteit zoals het module systeem
• /core/lib - Drupal Core classes.
• /core/modules - Drupal Core modules.
• /core/profiles - Drupal Core installatieprofielen (minimal, standaard,
testing, multilingual testing)
• /core/scripts - CLI scripts: forgot password, db dump, generate
content
• /core/tests - Drupal Core tests (PHPUnit ipv Simpletest D7)
• /core/themes - Drupal Core themes (Bartik, Classy, Seven, Stark)
• /core/vendor - Backend libraries waar core van afhangt: Symfony2,
Twig, etc
31. I n f o r m a t i c s Hans Rossel - www.koba.be
Drupal 8: Externe libraries
• Het wiel niet opnieuw uitvinden + samenwerken
• In /core/vendor en /core/assets/vendor
32. I n f o r m a t i c s Hans Rossel - www.koba.be
Drupal 8 Initiatives
33. I n f o r m a t i c s Hans Rossel - www.koba.be
34. I n f o r m a t i c s Hans Rossel - www.koba.be
Configuration management
35. I n f o r m a t i c s Hans Rossel - www.koba.be
Configuration management
• Wat?
– Opslaan van de configuratie
(velden, inhoudstypes,
views,...) in YAML files die
kunnen geïmporteerd en
geëxporteerd worden
• Voordeel
– Content en configuratie kunnen
van elkaar gescheiden worden
waardoor de ontwikkeling en
integratie van nieuwe features
voor een website vlotter loopt
– Versie controle zoals git kan
toegepast worden op
configuratiewijzigingen
– Betere dev-stage-prod workflow
– http://www.garfieldtech.com/blog/off-the-island-2013)
36. I n f o r m a t i c s Hans Rossel - www.koba.be
Mobile & HTML5
37. I n f o r m a t i c s Hans Rossel - www.koba.be
Drupal 8: Mobile
• Wat?
– Diverse aanpassingen voor weergave op mobiele
toestellen
• Aanpassingen
– Mobile first
– Responsive templates
– Responsive image module in core: responsive image
mappings
– Mobile friendly administration
38. I n f o r m a t i c s Hans Rossel - www.koba.be
Mobile friendly administration
39. I n f o r m a t i c s Hans Rossel - www.koba.be
Mobile authoring
40. I n f o r m a t i c s Hans Rossel - www.koba.be
Drupal 8
HTML5 Formulieren
41. I n f o r m a t i c s Hans Rossel - www.koba.be
Authoring experience
42. I n f o r m a t i c s Hans Rossel - www.koba.be
Authoring experience
• Wat?
– Diverse verbeteringen aan de
gebruikerservaring van Drupal
– Spark project in Drupal 7 was proefversie
• Voordeel
– Inline editing: quick edit optie voor snel bewerken
– Ckeditor in core: image fields, makkelijker
configuratie
– Responsive Navbar
– Draft saving
43. I n f o r m a t i c s Hans Rossel - www.koba.be
Fields & Views
44. I n f o r m a t i c s Hans Rossel - www.koba.be
Fieldable entities
45. I n f o r m a t i c s Hans Rossel - www.koba.be
Fieldable entities
• Drupal 6
– CCK (Content Construction Kit): uitbreiden
van de node met extra velden
• Drupal 7
– Fields in core.
– Fieldable entities: Nodes, Users, Taxonomy
terms, (Commerce products, Media files).
• Drupal 8
– Fieldable entities: Contactformulier, Blokken.
– Reacties is een veld
– Date, entityreference, email, url, phone in core
46. I n f o r m a t i c s Hans Rossel - www.koba.be
Drupal 8
Nieuwe veldtypes in core
• Date
• Entity reference
• URL
• Phone
• Email
• Reacties
47. I n f o r m a t i c s Hans Rossel - www.koba.be
Drupal 8
Fieldable blocks
48. I n f o r m a t i c s Hans Rossel - www.koba.be
Fieldable contact form
• Entityform (webform) in core
49. I n f o r m a t i c s Hans Rossel - www.koba.be
Drupal 8: Views in core
• Wat?
– Views is een dynamische query builder, een interface
waarmee je lijsten kunt trekken van inhoud, gebruikers,
zoekresultaten, externe data en die weergeven als html
lijst, tabel, fotogalerij, jquery accordion, Google maps, ...
• Voordeel
– Admin interfaces volledig aanpasbaar
– Volledige rewrite van de code met betere integratie in core
50. I n f o r m a t i c s Hans Rossel - www.koba.be
Multilingual
51. I n f o r m a t i c s Hans Rossel - www.koba.be
Multilingual
http://www.drupal8multilingual.org
• Wat?
– Rewrite van het
meertaligheidsysteem
• Aanpassingen
– Meteen installeren in de juiste taal
met automatische download van de
vertaalbestanden (Localization
update)
– Engels is niet meer de
standaardtaal
– Alles (content, blocks,menu's, user
profiles, views, taxonomy,...) is nu
vertaalbaar zonder extra modules
( i18n in core)
– Field based content translation ipv
content copy translation
52. I n f o r m a t i c s Hans Rossel - www.koba.be
Multilingual structuur
http://hojtsy.hu/multilingual-drupal8
53. I n f o r m a t i c s Hans Rossel - www.koba.be
Multilingual installer
54. I n f o r m a t i c s Hans Rossel - www.koba.be
Webservices
55. I n f o r m a t i c s Hans Rossel - www.koba.be
Webservices
56. I n f o r m a t i c s Hans Rossel - www.koba.be
RESTful webservices
http://buytaert.net/the-future-is-a-restful-drupal
• Data van Drupal doorgeven in andere
formaten dan HTML: XML, JSON, HAL, …
• Drupal als REST Server:
– Mobile apps met Drupal als databron
– Post back to Drupal from the client
– Expose views-generated lists as services
– HTTP authentication: authenticate a
client
• Headless Drupal
57. I n f o r m a t i c s Hans Rossel - www.koba.be
Webservices modules
58. I n f o r m a t i c s Hans Rossel - www.koba.be
Webservices modules
• RESTful Web Services module
– exposes entities in different defined endpoints
– services bekijken: RestUI module (in contrib)
• Serialization module
– serialize entities van en naar formaten als XML,
JSON
• HAL module
– breidt de serialization module uit om het HAL
hypermedia formaat te voorzien
• HTTP Basic Authentication
– authenticatie met username en paswoord bij calls
naar de REST API. Contrib: OAuth, Guzzle OAuth
59. I n f o r m a t i c s Hans Rossel - www.koba.be
Twig template engine
60. I n f o r m a t i c s Hans Rossel - www.koba.be
Drupal 6/7 html: Divitis
61. I n f o r m a t i c s Hans Rossel - www.koba.be
Drupal 8: Twig Templates
http://twig.sensiolabs.org
• Wat?
– De default template engine van Drupal 8 is Twig, de
template engine van het Symfony2 project
• Voordeel
– Betere Security: Themers kunnen niet meer prutsen met
php. Database queries en andere foute zaken in
templates zijn nu niet meer mogelijk. Variables worden
automatisch geëscaped.
– Alle Drupal default templates werden herschreven met
betere html5 code.
– Eenvoudige syntax
– Externe developers kunnen al vertrouwd zijn met Twig wat
de Drupal leercurve minder steil maakt
62. I n f o r m a t i c s Hans Rossel - www.koba.be
Twig
63. I n f o r m a t i c s Hans Rossel - www.koba.be
Andere nieuwe functionaliteiten
64. I n f o r m a t i c s Hans Rossel - www.koba.be
Drupal 8: Accessibility
https://groups.drupal.org/node/420413
• Diverse verbeteringen voor de
toegankelijkheid van Drupal
• Semantische HTML5
• Gebruik van WAI-ARIA om extra
semantische info toe te voegen voor
gebruikers van schermlezers
• Alt-veld verplicht optie
65. I n f o r m a t i c s Hans Rossel - www.koba.be
Tour module
http://www.d8tour.org
66. I n f o r m a t i c s Hans Rossel - www.koba.be
Semantic web: schema.org
https://groups.drupal.org/node/309513
67. I n f o r m a t i c s Hans Rossel - www.koba.be
Drupal 8: changelog
https://www.drupal.org/list-changes
68. I n f o r m a t i c s Hans Rossel - www.koba.be
Drupal 8 lancering
69. I n f o r m a t i c s Hans Rossel - www.koba.be
Lancering
• Momenteel op beta7 (25/2, download:
https://www.drupal.org/project/drupal)
• Beta
– Security en performance niet in orde
– Geen updates mogelijk tussen beta's (
https://www.drupal.org/node/2341575 )
– Niet bruikbaar voor live sites
• Als alle critical issues (
http://webchick.net/critical-rundown-bogota) opgelost
zijn komt er een eerste release candidate
• Wellicht eind 2015
• Volg: https://www.drupal.org/drupal-8.0
70. I n f o r m a t i c s Hans Rossel - www.koba.be
Drupal 8
https://www.drupal.org/drupal-8.0
71. I n f o r m a t i c s Hans Rossel - www.koba.be
Lancering & nieuws
https://groups.drupal.org/core/updates
72. I n f o r m a t i c s Hans Rossel - www.koba.be
Upgraden van D6 en D7
• Migrate in core => migration path ipv
upgrade path
– Nieuwe Drupal 8 site bouwen en dan
content, users, … migreren van Drupal 7
én Drupal 6 (core)
– UI in contrib
– Belangrijke release blocker
• Resources
– https://www.drupal.org/upgrade/migrate: docs
– https://www.drupal.org/project/migrate_upgrade: upgraden
via migrate (Migrate UI)
– https://groups.drupal.org/imp
73. I n f o r m a t i c s Hans Rossel - www.koba.be
Upgrade status module
https://www.drupal.org/project/upgrade_status
74. I n f o r m a t i c s Hans Rossel - www.koba.be
Drupal 8: Module autoupgrader
https://www.drupal.org/project/drupalmoduleupgrader
75. I n f o r m a t i c s Hans Rossel - www.koba.be
Drupal Console
http://drupalconsole.com
76. I n f o r m a t i c s Hans Rossel - www.koba.be
Backports
77. I n f o r m a t i c s Hans Rossel - www.koba.be
Drupal 8 bruikbaar in de praktijk
78. I n f o r m a t i c s Hans Rossel - www.koba.be
Toekomst Release cycle
https://www.drupal.org/node/2135189
79. I n f o r m a t i c s Hans Rossel - www.koba.be
Resources
• http://www.slideshare.net/AcquiaInc/drupal-8-preview-what-to-expect
• http://www.slideshare.net/webchickenator/top-8-improvements-in-drupal-8
• https://www.youtube.com/user/DrupalAssociation/playlists
• https://github.com/hechoendrupal/drupal8-links
80. I n f o r m a t i c s Hans Rossel - www.koba.be
Bedankt
hans.rossel@koba.be
Twitter: @haro
www.koba.be