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 ;)
Top Related