Ontwikkelen met Drupal - Een developer centric aanpak

Post on 18-Jun-2015

478 views 1 download

Transcript of 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

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