Modernized a legacy codebase from PHP4 to PHP5, writing abstract classes as we went for portability.