Buytaert.net now on Drupal 8

Some of my readers may have noticed that I recently upgraded this blog from Drupal 7 to Drupal 8. You might be wondering why it took me so long, and the truth is that while I love working on my site, it's hard to justify spending much time on it.

I did most of the work on my commute to work, cramped in a small seat on the train to the tune of the rumbling train carriage. I finally pushed the site live during Thanksgiving weekend. Nothing like seeing the Drupal migration tool run on your computer to the smell of the turkey cooking in the oven. The comfortable atmosphere of Thanksgiving -- and the glass of wine that was sitting on my desk -- made it all the more fun.

While my blog has been around for more than a decade, it isn't very complex; I have approximately 1,250 blog posts and 8,000 photos. All of the photos on my website are managed by my Album module, a custom Drupal module whose first version I wrote about ten years ago. Since its inception, I've upgraded the module to each major Drupal version from Drupal 5 to 7, and now to Drupal 8.

Upgrading my little website was relatively simple, involving porting my custom Album module, porting my theme to use Twig, and migrating the data and configuration. Though I've reviewed and committed many patches that went into Drupal 8, this was the first time I'm actually undertaking a Drupal 8 module, theme, and migration from scratch.

Each of the steps in upgrading a Drupal site have undergone substantial changes in the transition from Drupal 7 to Drupal 8. Building a module, for instance, is completely different because of the new introduction of object-oriented programming paradigms, the new routing system, and more. Writing a module in Drupal 8 is so much nicer than writing a module in Drupal 7; my code is better organized, more reusable, and better tested. Theming has been completely reinvented to use Twig. I found Twig much more pleasant to use than PHPTemplate in Drupal 7, and I'm very happy with how the theming process has improved. That said, I've to give a special shoutout to Preston So for helping me with my theme; I was painfully reminded I'm still not a designer or a CSS expert.

Overall, porting my site was a fun experience and I'm excited to be using Drupal 8. There is so much power packed into Drupal 8. Now that I've experienced Drupal 8 development from the other side of the equation, I believe even more in the decisions we made. While there is always room for improvement, Drupal 8 is a giant leap forward for Drupal.

Comments

Ryan Szrama (not verified):

And it's blazing fast. Is that just standard caching here or are you making use of specific D8 or Acquia Cloud features?

December 16, 2016
Dries:

I didn't configure anything special; just enabled Drupal's internal page cache and enabled CSS/JavaScript aggregation. The site runs on Acquia Cloud, which comes with Varnish. There are probably a number of things I can do to improve the site's performance but I haven't had time to look into that yet.

December 16, 2016
Elijah Lynn (not verified):

The headers show it isn't being cached by Varnish, this would probably be why: "Cache-Control:must-revalidate, no-cache, private".

December 16, 2016
Dries:

For what page? If it is a page with a form, it is most likely due to the honeypot module that I'm testing.

December 16, 2016
Ben (not verified):

Did the one click upgrade approach in core work out of the box? I'd be interested to hear about any issues you ran into, custom code you had to write to assist the migration? The site looks good!

December 17, 2016
Dries:
All in all the migrate tool worked really well. I ran into a couple of small glitches:
  • My RSS feed wasn't migrated properly so I had to reconfigure the RSS view.
  • Input formats were not migrated correctly -- I believe the migration tool takes a conservative approach to avoid security issues.
December 17, 2016
Ankur Singh (not verified):

Congratulations Dries. Enjoying "Twig"? How much time it took exactly to migrate from D7 to D8 ?

December 23, 2016

Add new comment

The content of this field is kept private and will not be shown publicly.

Plain text

  • No HTML tags allowed.
  • Lines and paragraphs break automatically.
  • Web page addresses and email addresses turn into links automatically.