Pragmatism in the real world

Active Record

I've recently been working through the PHP|Architect's Guide to PHP Design Patterns and have decided to build my own version of an active record along the lines of the one in Ruby on Rails. It's turning into an interesting experience as I'm doing using Test Driven Development methodology. This is proving very useful as I don't really have a clue where I'm going with the design, and so having a series of tests for each… continue reading.

PHP Collaboration Project

Everyone else is talking about the PHP Collaboration Project, so I thought I would too! I think this should be fun. There are two strands from what I can tell: A framework. A Zend plugin for Eclipse I currently use Zend's Studio and think it's great. it's expensive though and, to be honest, the problems revolving around editing have long been solved. Eclipse is a nice enough IDE and I think it would be better… continue reading.

Quick and Dirty Profiling

Profiling the quick and dirty way works for me a lot of the time. Other times, Zend's profiler is better, but when I just want to work out which function is taking all the time, the following function peppered throughout my code tells me what's going on:

10 Years of PHP

Seems hard to believe that PHP is 10 years old! I know it's quirky and not "elegant" in a lot of ways, but it fits what I need to get done like a glove. I especially like how it doesn't get in the way of creating kick-ass applications for the web!

Version Control

Apart from my day-job, I also do a very small amount of freelance work, mainly for my old company. The weirdest thing about this work is that they don't use any version control system for their websites. So far, I've fixed one particular bug 4 times… It's got to the point where I keep their sites in my version control system so that I can find out which bits of my code they have broken… continue reading.

Runtime Variable Inspection

The most common way to debug is to stick echo statements into your code at strategic places. If you are feeling clever, you might even output a variable's value too: echo "<p>here: $myvar = $myvar";</p> I call this runtime variable inspection and as PHP is a script language, it's a very fast way to debug a script. You stick the echo statement at strategic points and with a few page refreshes in the browser, you… continue reading.

Additional Content Blocks

I hacked together support for additional content blocks in CMS Made Simple over the last few days. This constitutes the first time I've hacked the main code and I'm pretty damn proud of myself! In the end the feature wasn't as difficult to write as it might have been. This is due to some rather clever design in the back end. First off, the database already separated out storage of the main text and header… continue reading.

ADOdb Data Dictionary

Notes on using ADOdb's data dictionary to create and manipulate database tables independantly of the underlying database server.