KorolevSerge, flow найден - это хорошо, но вот утерян разум.
действия пользователя должны быть методами внутри самого контроллера (допустим контроллер Index )
URL:
http://hostname/login - должно запустить контроллер login, т.к вторым параметром мы ничего не передаём по умолчанию действием будет index. т.е URL hostname/login тоже самое, что и hostname/login/index
А выполнить delegate должен
call_user_func_array(array($controller, $action), array()); если за пример взять вышеуказанный юрл hostname/login/index
call_user_func_array(array('Controller_Login', 'Index'), array());
URL:
http://hostname/login/logout
all_user_func_array(array('Controller_Login', 'Logout'), array());
У вас нет четкого представления MVC, и что такое Controller-Action в частности!
Зачем вы их наследуете сразу всеми контролерами?
Ещё раз повторяю: User в данном случае модель.
PHP:
скопировать код в буфер обмена
<?
class Controller_Index {
public function Login(){
// ессно User - паттерн синглтон
$User = User::getInstance();
$User->Login(... сюда можно POST передать...);
if(!$User->Auth()){
// Хотя лично для меня это кажется говнокодом - (я выше писал, что я не трезв и возможно я и вправду не вижу очевидных плюсов ваших методов), но у вас там жизненный цикл поэтому надо что-то вернуть контроллеру в ваш цикл.
return $User::getError();
} else {
....
}
}
public function Logout(){
$User = User::getInstance();
if(!$User->Auth()){
$User->Logout();
}
}
}
Не ну может я конечно бухой и туплю сижу и не вижу очевидных плюсов. хз ...
На мой взгляд весь ваш код можно охарактеризовать тремя словами : "плодим классы ради класса"...
! Вот теперь вы мне вряд-ли докажите, что Router::_('...') - не является моделью т.к скорей всего он дергает это данные из базы или ещё откуда..
Ну как минимум можно быть сделать контроллер Users и вот тут нас и выручит инкапсуляция...