Use PHP's abstract features

I can't see why you shouldn't use the `abstract` keyword here instead of throwing an exception.

Submitted to the master branch, as it's not fully comptable with before (an error instead of an exception)