Revert "Use PHP's abstract features"

This reverts commit a4db06775fa3163b605b78ee516917ac6d599afc.

Fixes #3673.