Introduction to Varnish

I’ve been meaning to write some posts about Varnish for a long time now. We use it extensively at work as part of our server stack and it’s a piece of software that consistently makes my jaw drop with it’s amazing performance and speed. What I’m hoping to do is to write a series of four […]

A few Vim Tricks

I’m a fairly recent convert to using Vim for development, having started using it last May. Having become somewhat proficient (or so I think) I wouldn’t swap it for any other editor. I recently discovered a few config settings that made my life as a developer a little easier and thought I’d share them here. […]

Continuous Deployment with Symfony2, Jenkins and Capifony

It seems that many people talk about setting up a continuous deployment system but few actually take the plunge and make it a reality. I’ve recently set up continuous deployment for an API project at work and thought I would blog about how I got it all to work. The Plan This project is relatively […]

Turbocharging your Logs

Logging can be a really powerful tool to help you to keep on top of problems in your applications. However all too often this information is lost amongst multiple log files spread out over many different servers. I’ve recently setup and configured a Graylog 2 server at work and thought I’d write about it and […]

Normalising DateTimes with Doctrine Events

Two of the biggest pains in development for me are character encoding and working with date time information. The former continually bites me when I least expect it, although making sure everything in a project is UTF-8 encoded seems to go a long way to mitigating this problem. Working with date time information is also […]

Implementing IteratorAggregate and Iterator

After a bit of a break I’m finally able to get back to writing about the predefined interfaces in PHP. PHP provides two interfaces that allow you to define how your objects behave in a foreach loop: IteratorAggregate and Iterator. Before taking a look at IteratorAggregate I’ll briefly discuss how we can iterate over objects […]

Making PHPUnit, Doctrine & MySQL Play Nicely

I’m currently using Doctrine for the first time and really enjoying it so far. One of the pain points for me though has been in getting Doctrine setup with PHPUnit for testing. One of the main Doctrine contributors, Benjamin Beberlei, has written a package called DoctrineExtensions which amongst other things adds a class called DoctrineExtensions\PHPUnit\OrmTestCase […]

Implementing the ArrayAccess Interface

This is the second part of an occasional series looking at practical uses for the PHP SPL and predefined interfaces. The first post in the series looked at implementing the Countable interface, this one will examine the ArrayAccess interface. What is the ArrayAccess Interface? ArrayAccess allows you to treat an object that implements it as […]

Using the Countable Interface

PHP provides a number of predefined interfaces and classes that can really make your life as a developer easier but which are often overlooked. The functionality offered by the Standard PHP Library (SPL) and the predefined interfaces is extremely cool and very powerful but very underutilised. I’ve found myself reaching more and more for these features recently and […]

Using SalesNet Web Services from PHP

I’ve been working on some projects recently where I’ve had to make heavy use of the SalesNet CRM API. I’ve written some code that makes basic access of the API easier and I thought I would write about it a little here. The SalesNet API is vast in scope (the documentation runs to 144 pages!) […]