Ты вроже уже используешь DI, так избався ещё от жёсткой зависимости $user = new User(); и т.д., используй phpdoc
Ну и тесты, а то так можно только кодестайл проверить.
Можно инъекцией в конструктор, yj hfp e;t bcgjkmpetim DI
>>$configuration = App_DI_Container::get('ConfigObject');
то логично будет
$user = App_DI_Container::get('User');
По второму вопросу, нужно проверять твою локацию перед редиректом. Типа этого
elseif ($ершы->getRequest()->getController() != 'index' ....) { $this->_redirect('/index/'); }