The Swiss Army Knife Conundrum

Here is my latest editorial for the September 2013 issue of php[architect] magazine:

php[architect] - September 2013

The Swiss Army Knife Conundrum

Many of you may remember the “Swiss Army Knife” discussion that occurred in late 2011. It was highlighted by beloved blogger, Cal Evans (@calevans) in his two blog posts written just about a month apart.

In the first, “Building the Backside – Part 1”, Cal says:

> In case you did not know this, I love PHP. It is the Swiss Army Knife of development languages, and I can do dang near anything using it.

The second post sums up the other side of the discussion in its title, “PHP is not a Swiss Army Knife, quit calling it that.” ( It all depends on your view of the Swiss Army Knife. Is it the tool that is small, but dabbles in all things? Is it the old standby tool that may not be the shiniest new thing, but can still get every job done? Is it a perfectly refined tool that has been specifically designed to be useful in as many situations as possible? As you can see, it is quite a complex issue. Whether or not you think PHP is the Swiss Army Knife of code or whether you think it’s the glue, the screwdriver, the ball of nails, etc., PHP is multi-faceted and very useful. In my opinion, the best thing about PHP is how many other tools work with it. PHP plays very well with others, and that broadens its applications, making life easier for all of us.

In this issue, we are going to learn about some of those “others”. These are not strictly focused on PHP, but they contain great information for the big picture of dev life. For instance, log files. Not strictly a PHP thing, but something we all deal with, usually when something is seriously wrong. Why wait until something is seriously wrong? Jeremy uses some great tools so that you can stay on top of your logs to find those problems before they become an emergency. Speaking of emergencies, the best thing to have in place during an emergency is a version control system so you can quickly roll back to a stable version. If you aren’t using one yet (or aren’t happy with the one you are using), David’s intro to Mercurial (with great cross-platform support) will be right up your alley.

Looking to get into the cloud? Stefan’s step-by-step tutorial on building a cloud-based file-transfer program will teach you the basics you need to get your app started. If you are looking for an easy way to handle the templates for your app, Matthew goes through two feature-rich templating languages that will help simplify your front-end development.

If you are looking for something different to do and are thinking of trying your hand at contract development, check out Tim’s article for the low-down on what it’s really like. Then everyone should check out Eli’s finally{} column, because no matter which role we are in, we all have (or will eventually) run into that customer who thinks everything is easy – after all, their friend’s sister’s nephew can do it.

Thank you for joining us for this month’s issue, and if you have a moment, I’d love it if you’d stop by our Facebook page: and let us know if you think PHP is a Swiss Army Knife or something else entirely.