Skip to main content
New book · out now

Understanding Drupal: A Complete Guide to Caching Layers

A deep, practical tour through every caching layer in Drupal — from the render cache to chained fast backends.

Get it on LeanPub
Understanding Drupal: A Complete Guide to Caching Layers — book cover
Recent writing RSS feed →
Oct 06, 2018

Test driven development in PhpStorm with auto-testing enabled

When I work, I try to follow the principles of Test-Driven Development. I have found it to aid me in writing cleaner code, identifying odd coupling of components or crazy accidental dependencies between components. It also lets me write my API first by using mocks against interfaces I have defined. PhpStorm's auto-test functionality speeds up my test-driven development process.
#phpunit  #testing  #test-driven development  #phpstorm  #drupal
Sep 27, 2018

Tracking changes in Migrate with dynamic row hashes

When it comes to Drupal and external data, I use Migrate. A lot. Like a lot, lot, lot. Many times this data is being imported over CSV files that are pushed to a server at some defined interval. Usually, the data can be derived directly from the CSV file itself, other times a custom process plugin derives data from other information.

#drupal  #migrate
Sep 24, 2018

Xdebug over the command line with DDEV

I moved over to DDEV for my local development stack back in February. One of my favorite things is the ease of using Xdebug.

#ddev  #drupal  #xdebug
Sep 21, 2018

Using multiple Solr cores with DDEV

If you want to have multiple Solr indexes using Search API, you need to have a core for each index instance. For my local development stack, I use DDEV.

#drupal  #search api  #ddev  #solr
Sep 20, 2018

Goodbye AdSense, hello CodeFund.

For a long time, I have had Google AdSense on my website. It generated enough revenue that I could hit the minimum payout of $100 about once a year, covering my hosting costs. Then, a few months ago, I found CodeFund by Gitcoin.

Jul 06, 2018

Filtering out invalid entity references in Drupal 8

Today I was working on a custom Drupal 8 form where I needed an option to purge existing entities and their references on a parent entity before running an import. It seemed pretty straightforward until I saw "ghost" values persisting on the parent entity's inline entity form. Here's my journey down the rabbit hole to fix broken entity reference values.
#drupal
May 13, 2018

Looking back at my first Drupal events and talks

I have been spending the month of May cleaning out my basement office. I have found a treasure trove of old papers and random things bringing up memories and other thoughts. Just like my last blog post on an organization's values and the culture it creates. This time I found two legal pads which had my notes and planning for my first Drupal Meetup talk and first came session.

#drupal  #drupalcamp
May 02, 2018

Values and culture are what build an organization

Last week I started to clean out my office. It has been the same since I started working from home in the spring of 2014.  I had left a local marketing agency to work for an education software company, called Gaggle. While cleaning I found some items I had kept from my year and a half at the company.