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 →
Jan 08, 2019

Writing better Drupal code with static analysis using PHPStan

PHP is a loosely typed interpreted language. That means we cannot compile our scripts and find possible execution errors without doing explicit inspections of our code. It also means we need to rely on conditional type checking or using phpDoc comments to tell other devs or IDE what kind of value to expect.

#drupal  #phpstan  #static analysis
Jan 05, 2019

Two Zero One Nine

2018 was a weird year. It felt like it just zoomed by and nothing eventful happened. In fact, I feel like most people I have talked to this year felt the same exact way. But, then I sat down to my end of year write up and realized that this year was way more packed than I thought.
#drupal  #javascript  #golang  #ddev  #phpstorm
Dec 12, 2018

PhpStorm protected branches feature

Recently, while working on a little project, I decided to clean up some of the commits on the master branch before pushing it to Packagist. To be lazy, I decided to use PhpStorm's interactive rebase tool instead of the good ole command line.

BUT I COULD NOT! And I started to go mad.

#phpstorm  #git
Nov 20, 2018

People often tell each other to have a good day. But, it has become one of those customary things to say without much meaning behind it. Which is a shame, because we really should remind ourselves to have a good day. A few weeks ago my son Aiden left me a note, which I found after dropping him off at school.

Fall has felt like a whirlwind. I caught myself chasing after the eternal pile of work that needed to be done and not recognizing the victories of the day. Instead of letting myself have a good day, I was forcing myself to a negative for the next day. I wasn't having bad days, but I found myself less than chipper. I found myself working at home more than riding my bike to the coworking space downtown, I had stopped running and reading. I didn't fill those gaps with work, I just took moments to sit.

It is funny how a little note can cause you to stop, think, and act. Despite the wintry midwestern weather setting in (~30°F / ~2°C) I have been able to pick up running again and get my reading back on track. Sometimes you just need a reminder to focus on the victories of the day and remember you did all you can do.

Oct 18, 2018

Running Drupal's Nightwatch test suite on DDEV

This is the third, and final post in my series on running Drupal’s various test suites using the DDEV local development stack.

#drupal  #nightwatchjs  #ddev  #testing
Oct 12, 2018

Running Drupal's PHPUnit test suites on DDEV

DDEV is a local development stack built on top of Docker. It gives you all of your environment needs without messy configured on your host machine, without needing to know Docker or configure your own containers. Which is great, and makes life easier. Instead of just using DDEV to develop your site or application locally, why not also run your tests within it?

#ddev  #drupal  #phpunit  #testing
Oct 10, 2018

OK PhpStorm, what methods does my entity have?

Working in object-oriented programming is great. You can define interfaces which specify a contract that implementers need to fulfill. You can then extend these to define your end requirement and provide the implementation. This also means you can guarantee an object that implements that interface will have a guaranteed set of known methods.

#drupal  #phpstorm
Oct 07, 2018

I am looking to try something new on my site, adding a way to just provide quick updates. Possibly experimenting with it being my way to publish to social networks.

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