От такого лечения и скопытиться недолго.

Общий базовый класс для всего - это заранее заложенная бомба: довольно велик соблазн туда всякого надобавлять.
В php 5.4 можно сделать красиво
PHP:
trait strict {
public function __get($key) {
throw new Exception('Attempt to read undefined property $'.$key.' of '.get_class($this).' class');
}
public function __set($key, $value) {
throw new Exception('Attempt to set value to undefined property $'.$key.' of '.get_class($this).' class');
}
}
class Foo {
use strict;
// ...
}