Skip to content


@engram-design @colinmollenhour




  • 6 discussions answered
Block or Report

Block or report dvdoug

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse

Taps mic🎤, is thing on?


In my day job I help to make awesome PHP applications that help to bring the world a little closer together. With my open source hat on, I create and/or maintain some libraries that I've needed that otherwise wouldn't exist 🦾 Check them out!

Tell me more

Sometimes in my career, I've looked for a library to complete what I imagined to be a fairly common task and to my surprise have found that one either doesn't exist or has been abandoned by its original author. This makes me sad, sometimes sad enough that I've decided to do something about it 😇.

Those libraries have now recorded over 700,000 downloads on Packagist so I'm fairly confident that there are people out there using them to do all sorts of wonderful things.

📦BoxPacker Download count

An original creation because nothing else in PHP-land existed. When you try and get a pricing quote from a courier, you're asked for the width/length/depth of the box and it's weight. When you're working in e-commerce, weight is easy: you simply add up the individual weights of the all the stuff the customer ordered.

But the dimensions of the box(es)? That's....more complex.

🌍PHPCoord Download count

If you have a latitude/longitude from GPS and just want to plot it on Google Maps or OpenStreetMap you probably don't need this. But if you have grid co-ordinates from a national mapping system e.g. the UK's Ordnance Survey and need to convert them, or have recently had your mind blown by discovering that the GPS latitude/longitude of a spot does not always agree with what national mapping authorities think it is then you need a conversion library. This project already existed when I first needed to do co-ordinate conversion, but was written for PHP4. I polished it up, fixed some bugs and added some features.

Since then, the project has been completely rewritten and now supports over 6000 different coordinate systems, up from just 10 in previous versions.

📈behat-code-coverage Download count

My most recent pick-up, this is actually a fork of an abandoned fork of a long-abandoned project making me something of a 3rd-generation maintainer. This Behat extension allows you to generate code coverage reports when running a Behat test suite, just like those you can get when running PHPUnit.


In 2020 I did substantial work enhancing the code coverage statistics reported by PHPUnit's code coverage component, to (optionally) produce branch and path coverage alongside the traditional line-based metrics. As part of that work, I also contributed performance enhancements that make coverage generation quicker even when not using the new metrics.

An in-depth writeup of the changes is available to read here.


  1. BoxPacker Public

    4D bin packing / knapsack problem solver

    PHP 493 136

  2. PHPCoord Public

    PHPCoord is a PHP library to aid in handling coordinates. It can convert coordinates for a point from one system to another and also calculate distance between points

    PHP 79 15

  3. Library that provides collection, processing, and rendering functionality for PHP code coverage information.

    PHP 8.3k 354

  4. Behat Extension to generate code coverage reports for Behat tests

    PHP 38 4

706 contributions in the last year

May Jun Jul Aug Sep Oct Nov Dec Jan Feb Mar Apr May Mon Wed Fri

Contribution activity

May 2022

Seeing something unexpected? Take a look at the GitHub profile guide.