Revert "Use PHP's abstract features"

This reverts commit a4db06775fa3163b605b78ee516917ac6d599afc.
Merge pull request #3705 from GrahamCampbell/4.2-abstract

Revert "Use PHP's abstract features"