Skip to main content


Lee Rowlands
Senior Developer



Lee has 21 years professional development experience with PHP, is a member of the security team and maintains the forum, comment, contact and block content modules in Drupal core along with at least 30 contrib projects. He is also the framework manager for core.

My blog posts

Drupal 8 Now: PSR-0 code in Drupal 7

by lee.rowlands /

Drupal 8 embraces modern PHP with all the trimmings, shedding the baggage of supporting earlier PHP versions and embracing the new object-oriented features.

One such feature is namespaced objects and the PSR-0 standard for autoloader compatability.

But if you know your project will run on a recent version of PHP, there's no reason you can't write your custom modules using PSR-0 now, in Drupal 7

Read the full post

Drupal 8 Now: Writing Drupal 7 code with an eye towards Drupal 8

by lee.rowlands /

We're getting closer to that difficult stage. You know, that point where we're nearing a new major Drupal release. That point where customers with flexible delivery dates who are thinking about starting a new project are asking if they should wait for Drupal 8 to come out or build on Drupal 7.

Those of us who went through the Drupal 6 and Drupal 7 release know what I'm talking about. Do I build it on Drupal 6 or do I chance it on Drupal 7 and work through any missing modules.

We're not there yet for Drupal 8, but we already have customers asking us to develop Drupal 7 sites in a fashion sympathetic to Drupal 8.

So what does that mean? Well we have a few pointers on starting new Drupal 7 modules that will be easier to upgrade to Drupal 8 when the time comes. We'll present these in a new Drupal 8 Now! series of blog posts.

Read the full post

Advanced Testing of Drupal emails with Behat and TestingMailSystem

by lee.rowlands /

One of our recent projects had the following requirements:

Users receive points for creating/commenting on content
When they receive a certain points balance they are awarded some goodies in the mail
When they receive the achievement a notification email should be sent to the user and an admin

Setting this up with Userpoints, Userpoints Rules and Rules was fairly straightforward but as part of our Agile processes, the story isn't done until there is automated testing.

Read on to learn how we setup testing the email and their contents using Behat.

Read the full post

Come sprint with us on Drupal 8 Contrib at Drupal South

by lee.rowlands /

Friday February 14th is the DrupalSouth Code Sprint, and PreviousNext are descending en masse to Wellington, New Zealand, to participate.

As a team we've been discussing what we'd like to sprint on. We've collectively agreed that the sprint would be an opportune time to work on porting some of our favourite contrib modules to Drupal 8.

Read on to find out our plans and how you can get involved.

Read the full post

A potential default content solution for Drupal 8 core

by lee.rowlands /

Inspired by Jeff Eaton and Roy Scholten's session on install profiles from Drupalcon Prague, I recently set about building a potential Snowman install profile for a musician using Drupal 8.

During the process I came across a few bugs in core (patches filed of course) and then started working on the main missing piece of the puzzle - a default content solution - using the REST and Serialization API's already in core.

Read the full post

Drupal 8 won't kill your kittens

by lee.rowlands /

Lately there's been some scuttlebutt and FUD around about the architectural changes Drupal 8 brings.

So I presented at the Drupal Melbourne meetup (remotely) a presentation titled 'Drupal 8 won't kill your kittens' in an attempt to dispel some of the rumours.

So here's the summary of my main points along with the slides and audio.

Read the full post

Using Behat and DrupalDriver? Beware pathauto.

by lee.rowlands /

Here at PreviousNext we love behat. We use it as part of our CI builds to make sure that we're not introducing regressions and it's a great fit for our Agile methodologies. But we recently had some issues with weird behaviour in our tests, such as page manager pages not working. Read on to find what was the cause and how we tackled them.

Read the full post