SlideShare une entreprise Scribd logo
1  sur  48
Télécharger pour lire hors ligne
O n t w i k k e l e n
m e t D r u p a l
E e n d e v e l o p e r - c e n t r i c a a n p a k
#1/ 5
Introductie
DOOR: Cies Breijs
Richard Bakker
DATUM: 2 mei 2014
LOKATIE: InnStyle, Maarssen
#1 INTRODUCTIE
Wie zijn wij	
  
§ Hoppinger is een full service internetbureau uit Rotterdam.
§ Ongeveer 35 medewerkers.
§ Wij bouwen systemen onder andere op basis van Drupal,
Wordpress, Ruby on Rails en Symfony.
Oxfam Novib
ANWB Motor
TV Rijnmond
Van Oord
Omroep West
Rijk Zwaan
#1 INTRODUCTIE
In deze talk…
§ Inleiding
§ Drupal ontwikkelen bij Hoppinger: 3 smaken
§ Developer centric – In Theorie
§ Developer centric – De Praktijk
§ Afsluiting & Vragen
#2/ 5
Drupal ontwikkelen bij Hoppinger:
3 smaken	
  
1-MAN-1-DRUPAL
CODE DRIVEN DEVELOPMENT
DEVELOPER CENTRIC
#2 ER ZIJN 3 SMAKEN VAN ONTWIKKELEN
#2 ER ZIJN 3 SMAKEN VAN ONTWIKKELEN
1-Man-1-Drupal	
  
§ Lekker snel starten.
§ Geen backups; niet gemakkelijk een ‘roll back’ te doen.
§ Lastig uit te rollen naar een andere omgeving (foutgevoelig).
#2 ER ZIJN 3 SMAKEN VAN ONTWIKKELEN
Code Driven Development	
  
§ Instellingen exporteren met de Features module.
§ Gemakkelijker uitrollen naar een andere omgeving.
#3/ 5
Developer centric – In Theorie	
  
I WANNA PLAY A GAME
#3 DEVELOPER CENTRIC
Kraftwagen	
  
§ Een deployment tool voor Drupal.
§ Meer info: kraftwagen.org
§ Faciliteert samenwerking in ontwikkelteams.
§ Niet het-wiel-opnieuw: gebruikt Drush Make en install profiles.
§ Sla alleen projectspecifieke code op in versiebeheer.
§ Trefzeker uitrollen naar verschillende omgevingen (OTAP).
core = 7.x
api = 2
translations[] = nl
projects[file_entity][version] = "2.0-alpha3"
projects[file_entity][subdir] = "contrib"
projects[jquery_update][version] = "2.3"
projects[jquery_update][subdir] = "contrib"
projects[mailsystem][version] = "2.34"
projects[mailsystem][subdir] = "contrib"
libraries[swiftmailer][download][type] = "file"
libraries[swiftmailer][download][url] = "http://swiftmailer.org/
download_file/swift-4.3.0.tar.gz"
libraries[swiftmailer][download][md5] = "d6bc4e1816a332a3731858ecde656db"
#4/ 5
Developer centric – De Praktijk	
  
#4 DEVELOPER CENTRIC
Node types
§ Node types definiëren: hook_node_info()
§ Body veld: node_add_body_field()
§ Extra velden: ‘field_configure’ module
§  Meer info: github.com/rolfvandekrol/field_configure
§ Field settings: hook_field_info()
hook_formatter_info()
hook_field_widget_info()
#4 DEVELOPER CENTRIC
Kraftwagen Manifests	
  
§ Vind je hier: github.com/kraftwagen/kw-manifests
§ Een project kan meerdere manifests bevatten.
§ Lijkt op hook_update_n() maar kan vaker worden aangeroepen.
§ Manifests uitvoeren met commando: drush kw-m
#4 DEVELOPER CENTRIC
Fixtures	
  
§ Te realiseren met de module Kraftwagen Itemnames.
§  Meer info: github.com/kraftwagen/kw-itemnames
§ Eenvoudig ‘default content’ aanmaken.
#4 DEVELOPER CENTRIC
Taxonomies en terms	
  
Eenvoudig aan te maken met Kraftwagen Itemnamens.
#4 DEVELOPER CENTRIC
Menu blocks
§ In code definiëren middels hook_menu_block_blocks()
§ Een heel nieuw menu kun je vastleggen met menu_save()
#4 DEVELOPER CENTRIC
Contexts	
  
§ Contexts worden snel onoverzichtelijk (overlappen elkaar).
§ Je kunt hiervoor ook hook_node_view() implementeren…
§ …of gebruik maken van de Context API.
#4 DEVELOPER CENTRIC
Lijsten maken	
  
§ Een lijstweergave kan eenvoudig gemaakt worden.
§ Een page callback, implementeer hiervoor hook_menu()
§ Een get functie (query).
§ Enkele theme wrappers.
#4 DEVELOPER CENTRIC
Permissions	
  
§ Rechten en rollen: eenvoudig met Kraftwagen Itemnamens.
§ Gebruik hiervoor user_role_grant_permissions()
#4 DEVELOPER CENTRIC
Variables/Settings	
  
§ Instellingen van Drupal Core worden opgeslagen in variables.
§ Veel modules slaan ook configuratie op in variables.
§ Instellingen zijn eenvoudig op te slaan met variable_set()
#4 DEVELOPER CENTRIC
Projectstructuur	
  
§ Het project opdelen in kleine Drupal modules, zoals voor:
§ Node types.
§ Site secties.
§ Helpers.
#4 DEVELOPER CENTRIC
Capistrano	
  
§ Capistrano is een deployment tool.
§  Meer info: github.com/capistrano/capistrano
§ ‘Capwagen’ is een Capistrano-integratie voor Kraftwagen.
§  Meer info: github.com/kraftwagen/capwagen
#5/ 5
Afsluiting
§  Developer-centric ontwikkelen met Drupal:
§  Razendsnel nieuwe projecten opzetten (code hergebruiken).
§  Samenwerken in ontwikkelteams: alles in code.
§  Trefzeker uitrollen: maakt efficiënt OTAP’en mogelijk.
§  Maar… ieder project en iedere klant is anders.
THANK YOU!
WE ARE HIRING ;)

Contenu connexe

Similaire à Ontwikkelen met Drupal - Een developer centric aanpak

Headless Drupal - Wat, Waarom, Hoe & Uitdagingen
Headless Drupal - Wat, Waarom, Hoe & UitdagingenHeadless Drupal - Wat, Waarom, Hoe & Uitdagingen
Headless Drupal - Wat, Waarom, Hoe & UitdagingenLuciuswebsystems
 
EMS Ehsal - production in a digital world 2013
EMS Ehsal - production in a digital world 2013EMS Ehsal - production in a digital world 2013
EMS Ehsal - production in a digital world 2013Hans Palmers
 
Digipinguins: containers en virtualisatie (Ghlen Nagels - youngsource.be)
Digipinguins: containers en virtualisatie (Ghlen Nagels - youngsource.be)Digipinguins: containers en virtualisatie (Ghlen Nagels - youngsource.be)
Digipinguins: containers en virtualisatie (Ghlen Nagels - youngsource.be)Avansa Mid- en Zuidwest
 
Drupal intro 2010
Drupal intro 2010Drupal intro 2010
Drupal intro 2010Hans Rossel
 
Rijkshuisstijl in Drupal
Rijkshuisstijl in DrupalRijkshuisstijl in Drupal
Rijkshuisstijl in DrupalDrupaloverheid
 
Data optimaliseren voor tablet en mobiel
Data optimaliseren voor tablet en mobielData optimaliseren voor tablet en mobiel
Data optimaliseren voor tablet en mobielRené Kreijveld
 
Profiel thymos rudi respen
Profiel thymos   rudi respenProfiel thymos   rudi respen
Profiel thymos rudi respenRudi Respen
 
Web applicatie van scratch
Web applicatie van scratchWeb applicatie van scratch
Web applicatie van scratchHanzehogeschool
 
Dutch VMUG Event 2012 - Get Certified!
Dutch VMUG Event 2012 - Get Certified!Dutch VMUG Event 2012 - Get Certified!
Dutch VMUG Event 2012 - Get Certified!Joep Piscaer
 
PfCongrez 2007 Zend Studio Overview
PfCongrez 2007 Zend Studio OverviewPfCongrez 2007 Zend Studio Overview
PfCongrez 2007 Zend Studio OverviewIvo Jansch
 
2tCloud 4 fasen model - Copaco Cloud Event 2015 (break-out 1)
2tCloud 4 fasen model - Copaco Cloud Event 2015 (break-out 1)2tCloud 4 fasen model - Copaco Cloud Event 2015 (break-out 1)
2tCloud 4 fasen model - Copaco Cloud Event 2015 (break-out 1)Copaco Nederland
 
WPMeetup Rotterdam 15 december: Advanced Custom Fields
WPMeetup Rotterdam 15 december: Advanced Custom FieldsWPMeetup Rotterdam 15 december: Advanced Custom Fields
WPMeetup Rotterdam 15 december: Advanced Custom Fieldssebastiaandegeus
 
Fork Future
Fork FutureFork Future
Fork FutureFork-CMS
 
Deployment strategieën, WP Meetup Enschede, 26-02-2015
Deployment strategieën, WP Meetup Enschede, 26-02-2015Deployment strategieën, WP Meetup Enschede, 26-02-2015
Deployment strategieën, WP Meetup Enschede, 26-02-2015Arjan Snaterse
 
Eindwerk presentatie - Stage bij Duo nv
Eindwerk presentatie - Stage bij Duo nvEindwerk presentatie - Stage bij Duo nv
Eindwerk presentatie - Stage bij Duo nvvandenicky
 
Hoe releasen minder pijnlijk werd bij de ANWB Alarmcentrale
Hoe releasen minder pijnlijk werd bij de ANWB AlarmcentraleHoe releasen minder pijnlijk werd bij de ANWB Alarmcentrale
Hoe releasen minder pijnlijk werd bij de ANWB AlarmcentraleJeroen Reijn
 
TYPO3 Congres 2012 - Aan de slag met TYPO3 Extbase en Fluid
TYPO3 Congres 2012 - Aan de slag met TYPO3 Extbase en FluidTYPO3 Congres 2012 - Aan de slag met TYPO3 Extbase en Fluid
TYPO3 Congres 2012 - Aan de slag met TYPO3 Extbase en FluidTYPO3 Nederland
 

Similaire à Ontwikkelen met Drupal - Een developer centric aanpak (20)

Headless Drupal - Wat, Waarom, Hoe & Uitdagingen
Headless Drupal - Wat, Waarom, Hoe & UitdagingenHeadless Drupal - Wat, Waarom, Hoe & Uitdagingen
Headless Drupal - Wat, Waarom, Hoe & Uitdagingen
 
EMS Ehsal - production in a digital world 2013
EMS Ehsal - production in a digital world 2013EMS Ehsal - production in a digital world 2013
EMS Ehsal - production in a digital world 2013
 
Digipinguins: containers en virtualisatie (Ghlen Nagels - youngsource.be)
Digipinguins: containers en virtualisatie (Ghlen Nagels - youngsource.be)Digipinguins: containers en virtualisatie (Ghlen Nagels - youngsource.be)
Digipinguins: containers en virtualisatie (Ghlen Nagels - youngsource.be)
 
Drupal Ncrv
Drupal NcrvDrupal Ncrv
Drupal Ncrv
 
Drupal intro 2010
Drupal intro 2010Drupal intro 2010
Drupal intro 2010
 
Rijkshuisstijl in Drupal
Rijkshuisstijl in DrupalRijkshuisstijl in Drupal
Rijkshuisstijl in Drupal
 
Data optimaliseren voor tablet en mobiel
Data optimaliseren voor tablet en mobielData optimaliseren voor tablet en mobiel
Data optimaliseren voor tablet en mobiel
 
Profiel thymos rudi respen
Profiel thymos   rudi respenProfiel thymos   rudi respen
Profiel thymos rudi respen
 
Web applicatie van scratch
Web applicatie van scratchWeb applicatie van scratch
Web applicatie van scratch
 
Dutch VMUG Event 2012 - Get Certified!
Dutch VMUG Event 2012 - Get Certified!Dutch VMUG Event 2012 - Get Certified!
Dutch VMUG Event 2012 - Get Certified!
 
PfCongrez 2007 Zend Studio Overview
PfCongrez 2007 Zend Studio OverviewPfCongrez 2007 Zend Studio Overview
PfCongrez 2007 Zend Studio Overview
 
2tCloud 4 fasen model - Copaco Cloud Event 2015 (break-out 1)
2tCloud 4 fasen model - Copaco Cloud Event 2015 (break-out 1)2tCloud 4 fasen model - Copaco Cloud Event 2015 (break-out 1)
2tCloud 4 fasen model - Copaco Cloud Event 2015 (break-out 1)
 
Unleash the power of raven db
Unleash the power of raven dbUnleash the power of raven db
Unleash the power of raven db
 
WPMeetup Rotterdam 15 december: Advanced Custom Fields
WPMeetup Rotterdam 15 december: Advanced Custom FieldsWPMeetup Rotterdam 15 december: Advanced Custom Fields
WPMeetup Rotterdam 15 december: Advanced Custom Fields
 
Fork Future
Fork FutureFork Future
Fork Future
 
Deployment strategieën, WP Meetup Enschede, 26-02-2015
Deployment strategieën, WP Meetup Enschede, 26-02-2015Deployment strategieën, WP Meetup Enschede, 26-02-2015
Deployment strategieën, WP Meetup Enschede, 26-02-2015
 
Eindwerk presentatie - Stage bij Duo nv
Eindwerk presentatie - Stage bij Duo nvEindwerk presentatie - Stage bij Duo nv
Eindwerk presentatie - Stage bij Duo nv
 
Hoe releasen minder pijnlijk werd bij de ANWB Alarmcentrale
Hoe releasen minder pijnlijk werd bij de ANWB AlarmcentraleHoe releasen minder pijnlijk werd bij de ANWB Alarmcentrale
Hoe releasen minder pijnlijk werd bij de ANWB Alarmcentrale
 
TYPO3 Congres 2012 - Aan de slag met TYPO3 Extbase en Fluid
TYPO3 Congres 2012 - Aan de slag met TYPO3 Extbase en FluidTYPO3 Congres 2012 - Aan de slag met TYPO3 Extbase en Fluid
TYPO3 Congres 2012 - Aan de slag met TYPO3 Extbase en Fluid
 
Mis02 Hc6
Mis02 Hc6Mis02 Hc6
Mis02 Hc6
 

Ontwikkelen met Drupal - Een developer centric aanpak

  • 1. O n t w i k k e l e n m e t D r u p a l E e n d e v e l o p e r - c e n t r i c a a n p a k
  • 2. #1/ 5 Introductie DOOR: Cies Breijs Richard Bakker DATUM: 2 mei 2014 LOKATIE: InnStyle, Maarssen
  • 3. #1 INTRODUCTIE Wie zijn wij   § Hoppinger is een full service internetbureau uit Rotterdam. § Ongeveer 35 medewerkers. § Wij bouwen systemen onder andere op basis van Drupal, Wordpress, Ruby on Rails en Symfony.
  • 10. #1 INTRODUCTIE In deze talk… § Inleiding § Drupal ontwikkelen bij Hoppinger: 3 smaken § Developer centric – In Theorie § Developer centric – De Praktijk § Afsluiting & Vragen
  • 11. #2/ 5 Drupal ontwikkelen bij Hoppinger: 3 smaken  
  • 12. 1-MAN-1-DRUPAL CODE DRIVEN DEVELOPMENT DEVELOPER CENTRIC #2 ER ZIJN 3 SMAKEN VAN ONTWIKKELEN
  • 13. #2 ER ZIJN 3 SMAKEN VAN ONTWIKKELEN 1-Man-1-Drupal   § Lekker snel starten. § Geen backups; niet gemakkelijk een ‘roll back’ te doen. § Lastig uit te rollen naar een andere omgeving (foutgevoelig).
  • 14. #2 ER ZIJN 3 SMAKEN VAN ONTWIKKELEN Code Driven Development   § Instellingen exporteren met de Features module. § Gemakkelijker uitrollen naar een andere omgeving.
  • 15. #3/ 5 Developer centric – In Theorie  
  • 16. I WANNA PLAY A GAME
  • 17. #3 DEVELOPER CENTRIC Kraftwagen   § Een deployment tool voor Drupal. § Meer info: kraftwagen.org § Faciliteert samenwerking in ontwikkelteams. § Niet het-wiel-opnieuw: gebruikt Drush Make en install profiles. § Sla alleen projectspecifieke code op in versiebeheer. § Trefzeker uitrollen naar verschillende omgevingen (OTAP).
  • 18. core = 7.x api = 2 translations[] = nl projects[file_entity][version] = "2.0-alpha3" projects[file_entity][subdir] = "contrib" projects[jquery_update][version] = "2.3" projects[jquery_update][subdir] = "contrib" projects[mailsystem][version] = "2.34" projects[mailsystem][subdir] = "contrib" libraries[swiftmailer][download][type] = "file" libraries[swiftmailer][download][url] = "http://swiftmailer.org/ download_file/swift-4.3.0.tar.gz" libraries[swiftmailer][download][md5] = "d6bc4e1816a332a3731858ecde656db"
  • 19. #4/ 5 Developer centric – De Praktijk  
  • 20. #4 DEVELOPER CENTRIC Node types § Node types definiëren: hook_node_info() § Body veld: node_add_body_field() § Extra velden: ‘field_configure’ module §  Meer info: github.com/rolfvandekrol/field_configure § Field settings: hook_field_info() hook_formatter_info() hook_field_widget_info()
  • 21.
  • 22.
  • 23.
  • 24. #4 DEVELOPER CENTRIC Kraftwagen Manifests   § Vind je hier: github.com/kraftwagen/kw-manifests § Een project kan meerdere manifests bevatten. § Lijkt op hook_update_n() maar kan vaker worden aangeroepen. § Manifests uitvoeren met commando: drush kw-m
  • 25.
  • 26. #4 DEVELOPER CENTRIC Fixtures   § Te realiseren met de module Kraftwagen Itemnames. §  Meer info: github.com/kraftwagen/kw-itemnames § Eenvoudig ‘default content’ aanmaken.
  • 27.
  • 28. #4 DEVELOPER CENTRIC Taxonomies en terms   Eenvoudig aan te maken met Kraftwagen Itemnamens.
  • 29.
  • 30. #4 DEVELOPER CENTRIC Menu blocks § In code definiëren middels hook_menu_block_blocks() § Een heel nieuw menu kun je vastleggen met menu_save()
  • 31.
  • 32. #4 DEVELOPER CENTRIC Contexts   § Contexts worden snel onoverzichtelijk (overlappen elkaar). § Je kunt hiervoor ook hook_node_view() implementeren… § …of gebruik maken van de Context API.
  • 33.
  • 34.
  • 35.
  • 36. #4 DEVELOPER CENTRIC Lijsten maken   § Een lijstweergave kan eenvoudig gemaakt worden. § Een page callback, implementeer hiervoor hook_menu() § Een get functie (query). § Enkele theme wrappers.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41. #4 DEVELOPER CENTRIC Permissions   § Rechten en rollen: eenvoudig met Kraftwagen Itemnamens. § Gebruik hiervoor user_role_grant_permissions()
  • 42.
  • 43. #4 DEVELOPER CENTRIC Variables/Settings   § Instellingen van Drupal Core worden opgeslagen in variables. § Veel modules slaan ook configuratie op in variables. § Instellingen zijn eenvoudig op te slaan met variable_set()
  • 44.
  • 45. #4 DEVELOPER CENTRIC Projectstructuur   § Het project opdelen in kleine Drupal modules, zoals voor: § Node types. § Site secties. § Helpers.
  • 46. #4 DEVELOPER CENTRIC Capistrano   § Capistrano is een deployment tool. §  Meer info: github.com/capistrano/capistrano § ‘Capwagen’ is een Capistrano-integratie voor Kraftwagen. §  Meer info: github.com/kraftwagen/capwagen
  • 47. #5/ 5 Afsluiting §  Developer-centric ontwikkelen met Drupal: §  Razendsnel nieuwe projecten opzetten (code hergebruiken). §  Samenwerken in ontwikkelteams: alles in code. §  Trefzeker uitrollen: maakt efficiënt OTAP’en mogelijk. §  Maar… ieder project en iedere klant is anders.
  • 48. THANK YOU! WE ARE HIRING ;)