Course description

What magic happens between the start of a D8 request and the page being returned? How do routes and controllers fit in? Where are services useful and how are they built?

These questions are at the "foundation" of the new D8 architecture and of the Symfony framework itself. In this workshop, you'll get an intro into routes, controllers, services and events: the 4 concepts that most fundamentally drive the new Drupal. With these new tricks, we'll pull apart the layers of Drupal to see how things actually work. And ultimately, we'll uncover that it's really not all that complicated.

By the end of the workshop, D8 will look a whole lot less mysterious. And as a bonus, the Symfony framework will look simple. Go forth and build something amazing!

Learning Objectives

  • mastering the fundamentals of the route, controller, Response system
  • introduction and practical usage of events
  • learning to debug and understand existing events that make D8 go
  • understanding a "service" and the "container" so that you can leverage the many tools in D8
  • create your own services
  • put dependency injection to work and really understand that principle
  • understand how the core D8 services are built


  • creating a custom module
  • build a custom route-controller-response setup
  • install and use the Drupal 8 console
  • get a list of service in D8
  • use the factory method of injecting deps into a controller
  • create a service and register it
  • use dependency injection to add more things to the service
  • create an event subscriber to hook into the system
  • investigate other, existing event subscribers and dig into how D8 works under the hood
  • talk more about dependency injection tags

Who will gain the most from this course?

Drupal 7 users who have anywhere from no experience to mild experience with the new Drupal 8 concepts (routing, services, etc) will benefit most from this training. You'll start with only some (or no) knowledge of how these new pieces in Drupal 8 work, and leave feeling really confident (hopefully almost bored) with how this new stuff works and how to leverage it.

Prerequisites for this course

  • Drupal 7 knowledge
  • comfortable coding in PHP
  • some object oriented experience preferred, but not required

Dev Environments

Use whatever environment is most comfortable to you: we want you to be coding in your real development environment. Just make sure you have these pre-requisites:

  • PHP 5.5 or higher
  • The ability to run a Drupal 8 site (you don't need to have one pre-installed, but you should test that you have all the system requirements to install one)
  • Mac/Linux and Windows are ok, but we will be using the command line. For Windows users, we highly recommend you install a bash-like terminal. If you install git, it comes with a "Git bash" which is wonderful. Another great tool is cygwin. This will give you a terminal that is UNIX-like

Course Information

Date: 26 September 2016
Time: 9:00 - 17:00
Cost: €553.50 early bird rate (through 26 August), €615 regular rate - includes light breakfast, lunch and coffee breaks
Training Company: SensioLabs
Trainers: Nicolas Grekas
Experience Level: Beginner
Drupal Version: 8.1x

Register Now

If no timezone is set on your profile, time is displayed in UTC.
Update your profile's timezone