Developing software in the Real World

I'm speaking at PHPBenelux Conference 2011

I'm delighted to be able to announce that I'm speaking at the PHPBenelux Conference on 28 & 29 January 2011 in Antwerp, Belgium. This is a community run conference organised by the PHPBenelux user group and given the list of speakers, I'm expecting to learn a lot. The full list of talks is on their website and shows that this is going to be a great conference. I'll be giving a talk that will introduce… continue reading.

SqlSrv v2 and long field names

A good proportion of the projects my company undertakes end up on Windows servers with IIS and SQL Server and hence we use the SqlSrv PHP extension from Microsoft. We don't host any of these projects ourselves and leave it up to the client's IT department. This is the main reason that we use a database abstraction layer, Zend_Db, in our case as we can swap the underlying database out with less hassle. A couple… continue reading.

PHPNW10 Conference

The PHPNW Conference is an annual conference held in Manchester, now in its 3rd year and again I was invited to speak. The organisation of PHPNW was top-notch as usual with everything running smoothly from my point of view. I'm sure there were a few hectic moments for the organisers though :) The day started with Lorna's keynote on how to improve your skill set as a team. This was a great talk which sparked… continue reading.

A form in your layout

I recently received an email asking for my advice about how to handle a form that appears on every page. I want to add a newsletter sign up box to layout.phtml so it will appear on every page. The layout->content() comes from several different action controllers… So how do I handle the newsletter sign up? I thought that the answer is long-winded enough to be worth writing a blog post about. One way to do… continue reading.

OS X Tips and Tricks for Snow Leopard

Following some discussions with friends who've recently started using OS X, I thought I'd note down some tips and tricks that I've learnt since I moved to Mac. This is in no particular order as it's taken from IRC logs of conversations I've had :) Basics There's one menu bar for all application Closing the last window doesn't exit the application. Use cmd+q or the Quit menu item on the "application name" menu. System Preferences… continue reading.

Devzone article on Zend_Config

Vikram Vaswani has written an article on Manipulating Configuration Data with Zend_Config. Zend_Config seemed to meet my needs, so I played with it a little and then deployed it in a couple of projects. It did everything I needed it to, and was easy to integrate with both framework and non-framework PHP projects. It also has a couple of neat features, such as the ability to merge multiple configurations together. Keep reading and I'll give… continue reading.

ZendTool providers in ZF2 (dev1)

I've started playing with the development versions of ZF 2.0 and one of the first things I thought I'd do was to port Akrabat_Db_Schema_Manager. It turned out to be reasonably easy. All I needed to do was rework my use of ZF components to use the new ZF2 ones. Whilst I was at it, I also converted it to use namespaces. I also had to reorganise the http://github.com/akrabat/Akrabat library so that I could have ZF1… continue reading.

Setting up ZF2's ZendTool side by side with ZF1

Note: this article does not refer to the released version of Zend Framework 2!. If you want to play with the development versions of Zend Framework 2.0, then it's handy to be able to create ZF2 projects using the ZendTool command line tool. Rather unhelpfully, ZF2's ZendTool uses the same ini file (~/.zf.ini) as ZF1's Zend_Tool and the same zf.sh script filename, so you can't just put zf2 on to your path and it'll all… continue reading.

TweetGT: an example of Zend_Service_Twitter via OAuth

TweetGT is a simple application that talks to Twitter. I wrote it as I couldn't find another way to send a geotagged tweet sent from an arbitrary location. Also, my friend Cal Evans says that writing a Twitter app is the new Hello World, so I thought I'd better find out how to do it! Obviously, I used Zend Framework :) The source is up on github so you can have a look at the… continue reading.

On Exceptions

I've been reading the Proposal for Exceptions in ZF2 and like it. One thing that caught my attention was that it suggests that you can catch an interface. I hadn't heard of that ability before, so I pulled out my trusty text editor to have a play. Consider this code:

Within our My namespace, we have two exception classes and an exception interface that both classes implement. We also define a class MyA as… continue reading.