Blog

PHPUnicorn

For Pi Day 2017 I created a really fun project - the PHPUnicorn!

A simple PHPUnit listener collects test results and sends them to a Raspberry Pi Zero Wireless device in real-time.  As the device receives the stats it lights up LEDs green, red, or orange to visualize the progress and results of your unit tests.

TIL that Doctrine 2 doesn't support LIMITs within subqueries which can be frustrating. In my case, I wanted to LEFT JOIN on a table using a subquery with a single result - something like this:

$dqb->from('MyAppBundle:Foo', 'foo')
    ->leftJoin('foo.bar', 'bar', 'WITH', 'bar = (SELECT b FROM MyAppBundle:Bar b WHERE b.foo = foo AND b.published_date >= :now ORDER BY t.startDate LIMIT 1)');

But Doctrine kept throwing this error:

Installing PHP 7.0

Installing PHP 7.0 is easier than ever.  Here are instructions for installing the latest version on different platforms:

PHP 5.x Conflicts

You may encounter conflicts if you already have PHP 5.x installed. If so, make sure to completely remove PHP 5.x from your system before installing 7.0. On Ubuntu, this is as simple as running: sudo apt-get purge php5-*.

 

With the imminent release of PHP 7 on the horizon, I thought it would be cool to check out some of the lesser-known features coming with the 7.0.0 release:

1. Array constants in define()

PHP 5.6 added the ability to define array constants on classes by using the const keyword:

const LUCKY_NUMBERS = [4, 8, 15, 16, 23, 42];

PHP 7 brings this same functionality to the define() function: