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 →
Jul 14, 2026 #drupal  #phpstan-drupal

phpstan-drupal 2.1.0: stricter defaults

phpstan-drupal 2.1.0 is out. The theme of this release: rules and behaviors that proved themselves as opt-ins are now the defaults. If you run `composer update` and see new errors, that is the release working as intended — everything below includes the configuration to opt back out.

Apr 07, 2026

Dynamic type expressions in Drupal config schema

Drupal's config schema YAML supports dynamic expressions inside square brackets that resolve to values from the surrounding configuration data at runtime. Most developers have seen them — [%parent.type] in field formatter schema is a classic example — but few understand exactly how they work or when to use them.

#drupal
Mar 24, 2026

Catch @todo comments referencing the current issue

When making code changes or fixing issues, it's easy to leave @todo comments behind. Sometimes they mark areas waiting on an upstream fix, sometimes they're reminders that never got revisited. Either way, they accumulate — and the ones tied to the specific issue you're working on should be resolved before the MR merges.

#drupal  #phpstan-drupal
Mar 10, 2026

The nightmare of permissions and OAuth scopes in Drupal

Drupal's role-based access control is one of its strengths. Permissions and roles are well-understood, and the system is mature. But the moment you step outside the standard cookie-based session — say, into OAuth with the authorization code flow — you hit a wall that the core permission model never anticipated.

#drupal  #api
Mar 03, 2026

drupalorg-cli 0.8.0: GitLab issue fork and merge request commands

The 0.7.0 release was housekeeping — fixing the release notes command and clearing out deprecation warnings. 0.8.0 has two goals: add native GitLab issue fork and merge request commands, and make the CLI useful for developers using AI agents to assist with Drupal.org issues.
#drupal
Dec 09, 2025

Automating Drupal release notes in Dependabot PRs

I maintain drupal-mrn.dev, a tool widely used by maintainers to generate release notes for Drupal modules. It simplifies the changelog process, but consuming those notes has remained a manual step for site architects reviewing updates.
#drupal  #dependabot  #github
Dec 02, 2025

Preventing a `drush updb` from clearing your caches

By default, drush updb clears the cache after applying database updates. For deployments where you want to avoid an unnecessary performance hit, you can prevent this default behavior using a Drush pre-command hook. The updb command has a --cache-clear flag that you can set up in your CI workflow, but what about local testing?

#drupal  #drush