RSSAmplifier

Blog

Matthew Daly

I'm a web developer in Norfolk. This is my blog...

matthewdaly.co.ukRSS feed ↗10 posts

Latest posts

Goodbye 2025

OK, today's the last day of 2025, and while I'm not usually one for blogging specifically about things like this, I feel like this year it would be helpful to make an exception. It's been a year when my interests have covered quite a bit of stuff outside web development, and as a result I've done more different things that I wouldn't have done beforehand. What I've…

Using Dolt with Lando

For some years now, I've been using Lando as my main development environment at work. It's a convenient and flexible way to work with most stacks I might need to use, as it's Docker-based it's more lightweight than things like Vagrant which depend on virtual machines, and the presets for Laravel, Drupal and WordPress cover the most common use cases I typically have. One…

So... I learned Drupal

Late last year, at work they were looking for people to train up and get certified on working with Drupal so we could bid for jobs working with it. I can't say I'm a big fan of certification in general (before getting my first job, I got CIW certification, but no-one I've interviewed with has ever even heard of it), but I know in general that many larger organisations of the sort…

Retiring Laravel Azure Storage

Today I abandoned my most popular open source package, Laravel Azure Storage . According to Packagist, it's been installed nearly two million times down the years, and it has 221 stars and 45 forks on GitHub. And today it comes to an end. It's been inevitable for a while that this had to happen, and here's why. Why am I abandoning it? The package doesn't actually do very much…

Why I haven't posted much this year

If you regularly read this blog, you may have noticed that I haven't posted much this year. There's a reason for this - a lot of my spare time has been taken up working on a new personal project, which has just gone live. One issue in particular that has been bugging me for a long time is misinformation about application performance, particularly when relating to Laravel. If you visit…

Why (nearly) every PHP class you write should be abstract or final

If your introduction to object-oriented PHP was anything like mine, inheritance was probably touted as one of the biggest advantages. It allowed you to easily extend existing code with minimal effort, and bend existing third-party packages to suit your needs. However, after nearly twelve years in the industry, I've come to the conclusion that in fact, inheritance is only a comparatively…

Two techniques for handling recursive relationships in MySQL

When modelling users in a hierarchical organization, it's common to need to retrieve the line manager or subordinates of a given user. In MySQL, two of the techniques that can be used to handle these recursive relationships are the WITH RECURSIVE common table expression and using closure tables. Using CTEs with WITH RECURSIVE A common table expression (CTE) is a temporary result set that is…

What I think ChatGPT means for developers

I'm sure you've heard some of the buzz about ChatGPT . There's been examples of it creating a working Wordpress plugin on demand , recreating the Apple website , acting as a Linux terminal, and writing astonishingly detailed code samples for various purposes on demand. Naturally I decided to have a tinker with it as I was curious about it, and I've found it very useful for…

Why I no longer use the repository pattern

In September 2016, I started a new job after my previous employer went into liquidation. I expected a certain learning curve because I was going from an environment where I'd been the main driver of establishing coding standards and TDD (and which often felt like pushing a boulder up a hill) to one where there was a large-ish team of ten developers, and so there would be established standards…

Everything's (potentially) a callable

I&#x27;m a big fan of callables in PHP in general. They&#x27;re an extremely powerful way to build applications out of many different reusable components, in a way that combines the best aspects of object-oriented and functional programming. If you&#x27;re not familiar with the idea, consider this class: <?php declare(strict_types=1); namespace App\Jobs; use…