PHP Annotated Monthly – October 2014

PHP Annotated MonthlyLast month, we started an experiment with the PHP Annotated Monthly. Not sure if you’d like this kind of posts, we asked if you wanted more posts highlighting the most interesting content from around the web, posted by developers like us. The response was clear: a big YES!

The past few weeks were very interesting: we have new iPhones and bendgate, a new Windows 10 was announced (it seems they copied the PHP versioning, skipping a number), Shellshock scared a lot of system administrators (do patch your Bash if you haven’t done so already) and fall made its introduction, at least here in Belgium from where I’m writing this post. And of course, a good dose of PHP related posts were made!


The first bugfix release for PHP 5.6 is a fact! Several bugs were solved in PHP 5.6.1 (changelog). Check the PHP website for more information. PHP 5.5.17 and PHP 5.4.33 are now available as well.

While still an RFC, I’m already a fan of the Null Coalesce Operator. Instead of writing $username = isset($_GET['user']) ? $_GET['user'] : 'nobody';, the ?? operator lets us write $username = $_GET['user'] ?? 'nobody'; instead. It will assign the first operand if it’s set, the second operand if not. Now where’s PHP 5.7 when you need it…

Another RFC was proposed resurrected, for PHP 7, to allow replacing fatal or recoverable fatal errors that occurred in the engine itself. It allows for more graceful handling of exceptions that would otherwise yield a big HTTP 500, as well as trapping errors that were caused by dynamically loading other code into ours.

Want to run multiple PHP versions on your machine? Or isolate multiple environments on a single machine? Then PHPBrew and VirtPHP may come in handy. Phil Sturgeon worked on a tutorial on how we can get started with them.

How does HHVM convert PHP code into x86 machine code? Good question! Sara Goleman explains in an elaborate blog post.


On October 1st, Dries announced that 11.500 committed patches from 2300 people culminated in… the first beta version of Drupal 8! Check the Drupal 8 landing page for more information about what is contained in this new version and give it a try.

The Joomla community has been busy as well: probably the last scheduled maintenance release for the 2.5 branch, Joomla 2.5.26, was released. In the 3.x series, Joomla 3.3.5 saw the light of day. Both are mostly security releases so if you’re running a Joomla application it may be a good time to update.

What to expect from Yii 2.0? Arno Slatius explains what it will probably look like once out of beta with some example on how to start creating an application, create controllers, models and so on.

Aura 2.0 was released as well. Read the official post to get more background about the framework components that were released.


Peter Petermann wrote about virtual Composer packages. With a logger as the example, he explains that by not only specifying dependencies but also specifying which implementations your package provides, it becomes easier for others to bring in different implementations of a dependency. Matthias Noback notes that with the power of virtual packages comes great responsibility and perhaps we need some work on Composer to validate virtual package implementations against an interface. Nevertheless, good reads!

In the Binpress Podcast Episode 13, Andi Gutmans discusses what is going on in the PHP world right now and what’s the future of the language and how we develop PHP with tools like Composer and Docker.

Does your development process suck? Whether it does or not, Brandon Savage posted a good read on how to make your development process suck less. The key takeaway from his post is to push for faster releases by working with smaller tasks and automating the release process so that more releases can be done, faster.

And while developing, have empathy for your users! Cal Evans’s luggage decided to have a holiday on its own in Frankfurt. It didn’t pick up its phone, so he used the airline’s web site to keep track of when it would come back. What does delivery initiated mean exactly?

If you need to generate Excel files and charts, check this tutorial by Taylor Ren. He uses PHPExcel to generate some example files and explores some other functionality in this excellent library as well.

After plugging Chris Cornut’s last month, here’s another source of PHP news: the PHP Weekly is a newsletter that informs you about the latest and greatest PHP news, blog posts and interesting new Composer packages.Definitely worth subscribing!

To end this post, here’s a fun comparison of programming languages to vehicles. The vehicle version of PHP was to be expected as our favorite language always gets mocked, but I’m happy to not be using LISP.

Keep the news and comments coming! We’d love to see hear from you in the comments below. Also feel free to reach out to @maartenballiauw on Twitter.

Till next time!

Develop with pleasure!
– JetBrains PhpStorm Team

image description