Ontwikkelen met Drupal - Een developer centric aanpak

48
Ontwikkelen met Drupal Een developer-centric aanpak

Transcript of Ontwikkelen met Drupal - Een developer centric aanpak

Page 1: Ontwikkelen met Drupal - Een developer centric aanpak

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

Page 2: Ontwikkelen met Drupal - Een developer centric aanpak

#1/ 5 Introductie

DOOR: Cies Breijs Richard Bakker

DATUM: 2 mei 2014 LOKATIE: InnStyle, Maarssen

Page 3: Ontwikkelen met Drupal - Een developer centric aanpak

#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.

Page 4: Ontwikkelen met Drupal - Een developer centric aanpak

Oxfam Novib

Page 5: Ontwikkelen met Drupal - Een developer centric aanpak

ANWB Motor

Page 6: Ontwikkelen met Drupal - Een developer centric aanpak

TV Rijnmond

Page 7: Ontwikkelen met Drupal - Een developer centric aanpak

Van Oord

Page 8: Ontwikkelen met Drupal - Een developer centric aanpak

Omroep West

Page 9: Ontwikkelen met Drupal - Een developer centric aanpak

Rijk Zwaan

Page 10: Ontwikkelen met Drupal - Een developer centric aanpak

#1 INTRODUCTIE In deze talk…

§  Inleiding

§ Drupal ontwikkelen bij Hoppinger: 3 smaken

§ Developer centric – In Theorie

§ Developer centric – De Praktijk

§ Afsluiting & Vragen

Page 11: Ontwikkelen met Drupal - Een developer centric aanpak

#2/ 5 Drupal ontwikkelen bij Hoppinger: 3 smaken  

Page 12: Ontwikkelen met Drupal - Een developer centric aanpak

1-MAN-1-DRUPAL

CODE DRIVEN DEVELOPMENT

DEVELOPER CENTRIC

#2 ER ZIJN 3 SMAKEN VAN ONTWIKKELEN

Page 13: Ontwikkelen met Drupal - Een developer centric aanpak

#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).

Page 14: Ontwikkelen met Drupal - Een developer centric aanpak

#2 ER ZIJN 3 SMAKEN VAN ONTWIKKELEN Code Driven Development  

§  Instellingen exporteren met de Features module.

§ Gemakkelijker uitrollen naar een andere omgeving.

Page 15: Ontwikkelen met Drupal - Een developer centric aanpak

#3/ 5 Developer centric – In Theorie  

Page 16: Ontwikkelen met Drupal - Een developer centric aanpak

I WANNA PLAY A GAME

Page 17: Ontwikkelen met Drupal - Een developer centric aanpak

#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).

Page 18: Ontwikkelen met Drupal - Een developer centric aanpak

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"

Page 19: Ontwikkelen met Drupal - Een developer centric aanpak

#4/ 5 Developer centric – De Praktijk  

Page 20: Ontwikkelen met Drupal - Een developer centric aanpak

#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()

Page 21: Ontwikkelen met Drupal - Een developer centric aanpak
Page 22: Ontwikkelen met Drupal - Een developer centric aanpak
Page 23: Ontwikkelen met Drupal - Een developer centric aanpak
Page 24: Ontwikkelen met Drupal - Een developer centric aanpak

#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

Page 25: Ontwikkelen met Drupal - Een developer centric aanpak
Page 26: Ontwikkelen met Drupal - Een developer centric aanpak

#4 DEVELOPER CENTRIC Fixtures  

§ Te realiseren met de module Kraftwagen Itemnames. § Meer info: github.com/kraftwagen/kw-itemnames

§ Eenvoudig ‘default content’ aanmaken.

Page 27: Ontwikkelen met Drupal - Een developer centric aanpak
Page 28: Ontwikkelen met Drupal - Een developer centric aanpak

#4 DEVELOPER CENTRIC Taxonomies en terms  

Eenvoudig aan te maken met Kraftwagen Itemnamens.

Page 29: Ontwikkelen met Drupal - Een developer centric aanpak
Page 30: Ontwikkelen met Drupal - Een developer centric aanpak

#4 DEVELOPER CENTRIC Menu blocks

§  In code definiëren middels hook_menu_block_blocks()

§ Een heel nieuw menu kun je vastleggen met menu_save()

Page 31: Ontwikkelen met Drupal - Een developer centric aanpak
Page 32: Ontwikkelen met Drupal - Een developer centric aanpak

#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.

Page 33: Ontwikkelen met Drupal - Een developer centric aanpak
Page 34: Ontwikkelen met Drupal - Een developer centric aanpak
Page 35: Ontwikkelen met Drupal - Een developer centric aanpak
Page 36: Ontwikkelen met Drupal - Een developer centric aanpak

#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.

Page 37: Ontwikkelen met Drupal - Een developer centric aanpak
Page 38: Ontwikkelen met Drupal - Een developer centric aanpak
Page 39: Ontwikkelen met Drupal - Een developer centric aanpak
Page 40: Ontwikkelen met Drupal - Een developer centric aanpak
Page 41: Ontwikkelen met Drupal - Een developer centric aanpak

#4 DEVELOPER CENTRIC Permissions  

§ Rechten en rollen: eenvoudig met Kraftwagen Itemnamens.

§ Gebruik hiervoor user_role_grant_permissions()

Page 42: Ontwikkelen met Drupal - Een developer centric aanpak
Page 43: Ontwikkelen met Drupal - Een developer centric aanpak

#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()

Page 44: Ontwikkelen met Drupal - Een developer centric aanpak
Page 45: Ontwikkelen met Drupal - Een developer centric aanpak

#4 DEVELOPER CENTRIC Projectstructuur  

§ Het project opdelen in kleine Drupal modules, zoals voor:

§ Node types.

§ Site secties.

§ Helpers.

Page 46: Ontwikkelen met Drupal - Een developer centric aanpak

#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

Page 47: Ontwikkelen met Drupal - Een developer centric aanpak

#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.

Page 48: Ontwikkelen met Drupal - Een developer centric aanpak

THANK YOU! WE ARE HIRING ;)