We kicked off this year by launching the new Wire Media website on Drupal 8. We wanted to share a little about our journey, what we learned, and what the future looks like.
Configurations Are Super Important
Drupal 8 abstracts configurations, settings and schemas from your code. It relies heavily on YAML to hold configurations for your sites data and modules. This means you can save states of your sites settings and module configurations, eliminating the need to recreate module settings by hand from your development environment to your live. Building schemas is made simpler by placing schema information into YAML files, this makes updating schemas simpler and removes model data from interacting with your controller code. Learn more about configurations.
It’s All About Object Orientation
To get the most out of D8, you need to get comfortable with OOP programming (Object Oriented Programming). The hook system is still in use, but much of the programming logic will be placed into plugins, services, and controllers. This might feel a little bit more complex to newer programmers but it imposes a much cleaner, more consistent way to code, pushes for MVC (Model View Controller) methodology, and greatly improves performance when used in conjunction with the configuration management system. Here are some programming tips on the OOP paradigms you’ll be working with. And you may want to brush up on the Drupal documentation as well.
It Feels (And Acts) More Like A Framework Than Just A CMS
Often CMSes like Drupal and WordPress are put in different categories than development frameworks like Rails or Laravel. But with REST as part of D8’s core, your site can easily become an application capable of infinite possibilities. You can quickly get a REST service up and running using the core Serialization module and the REST UI module. The Views module has REST capabilities built into it, making it possible for you to create a REST service without writing any code. This is awesome for single page applications running on frameworks like Angular. Learn more about REST services in the Drupal docs. And read this great Acquia article summarizing web services.
To checkout an existing application using a customized REST web service built on Drupal, check out the Wire Media portfolio. We married the D8 services with Angular.js, to create a dynamic portfolio application.
The two biggest issues we came across were the options for data migration and media handling on entities. There are two helpful modules: one is for migrations and one is for managing and accessing media libraries on individual nodes. Both of these modules are still in the development phase at the moment, but we’re hoping that there will be stable versions for each in the near future. It may be worth you time to take a look at some more in-depth details on migrations.
There is still much work to be done on the “contributed modules” front, and hopefully within the near future more of the community will contribute helpful modules. However, the core provides most of the basic modules a site will need to get up and running simply and easily.
As time progresses and documentation becomes more robust, it’s hard not to believe that it will dominate and transform Drupal development. The newly adopted programming paradigms and focus on web services push it into a new realm of possibilities and professionalism. We’re super excited for the future of Drupal and glad to part of it!
Edgar is Wire Media’s lead web developer.