public function doControl() { // setup everything for the login $userDAL = new \model\UserDAL(); $sessionHandler = new \common\SessionHandler(); $cookieHandler = new \view\CookieHandler(); $loginModel = new \model\LoginModel($sessionHandler, $userDAL); $loginView = new \view\LoginView($sessionHandler, $cookieHandler, $loginModel); $loginController = new \controller\LoginController($loginModel, $loginView); $isLoggedIn = $loginController->doLoginAction(); // The first view is always the AdminView $this->view = new \view\AdminView($loginView, $this->navView, $isLoggedIn); // Don't want to continue further down if not logged in if (!$isLoggedIn) { return; } if ($this->navView->adminWantsToAddBeer()) { $this->view = new \view\AddBeerView($sessionHandler, $this->adminFacade->getPubs()); if ($this->view->adminPressedSave()) { $beer = $this->view->getBeer(); if ($beer == null) { return; } $pubBeer = $this->view->getPubBeer($beer->getId()); $this->adminFacade->addBeer($beer); $this->adminFacade->addPubBeer($pubBeer); $this->navView->redirectToBeer($beer->getId()); } } elseif ($this->navView->adminWantsToAddPub()) { $this->view = new \view\AddPubView($sessionHandler); if ($this->view->adminPressedSave()) { $pub = $this->view->getPub(); if ($pub == null) { return; } $this->adminFacade->addPub($pub); $this->navView->redirectToPub($pub->getId()); } } }
public function run() { $dateTimeView = new \view\DateTimeView(); $layoutView = new \view\LayoutView(); $navigationView = new \view\NavigationView(); $sessionHandler = new \common\SessionHandler(); $isLoggedIn = false; if ($navigationView->userWantsToRegister()) { $registerModel = new \model\RegisterModel($this->userDAL); $registerView = new \view\RegisterView($sessionHandler, $registerModel); $registerController = new \controller\RegisterController($registerModel, $registerView); $registerController->doRegisterAction(); $html = $registerController->getView()->response(); } else { $cookieHandler = new \view\CookieHandler(); $loginModel = new \model\LoginModel($sessionHandler, $this->userDAL); $loginView = new \view\LoginView($sessionHandler, $cookieHandler, $loginModel); $loginController = new \controller\LoginController($loginModel, $loginView); $isLoggedIn = $loginController->doLoginAction(); $html = $loginController->getView()->response(); } $layoutView->render($isLoggedIn, $html, $dateTimeView, $navigationView); }