Это ... это гениально! Конечно же классы контроллера наследуем не от контролера, а от юзера! Точно! Все, пошел писать на нобелевку, как получу - с меня пиво!
По вопросу о дб: Здесь не приведена модель, по этому не ясно как вы получаете бд в ней. Если это тупо создание экземпляра класса - тогда да, в каждом объекте наследуемом от модели у вас будет новое соединение и новый объект дб(что есть плохо). А если вы в модели принимаете готовый дб объект(например через параметры конструктора), то в объектах наследниках будет ссылка на экземпляр класса дб, дб будет один - в этом случае все ок. Однако в юзере не вижу ни конструктора, ни вызова парент конструктора.
class Model{
public $id;
public function __construct() {
$this->db = Registry::get("db"); // загружаем ссылку на дб из регистри.
}
}