$settingsView = new SettingsView(); $layoutView = new LayoutView(); //Create controllers $loginController = new LoginController($loginView, $loginModel); $registerController = new RegisterController($registerView, $loginView, $registerModel); $searchController = new SearchController($searchView, $userProfileView, $searchModel); $userProfileController = new UserProfileController($userProfileView); $settingsController = new SettingsController($settingsView, $settingsModel); $mainController = new MainController($registerController, $loginController, $searchController, $userProfileController, $settingsController, $layoutView, $settingsView); $mainController->listen(); // What view to render within LayoutView if ($mainController->renderRegView()) { $layoutView->render(false, $registerView); } else { if ($mainController->renderSearchView()) { if ($searchModel->foundMatch()) { $layoutView->render($loginModel->isLoggedIn(), $userProfileView); } else { $layoutView->render($loginModel->isLoggedIn(), $searchView); } } else { if ($mainController->renderSettingsView()) { $layoutView->render($loginModel->isLoggedIn(), $settingsView); } else { if ($mainController->renderMyProfile()) { $layoutView->render($loginModel->isLoggedIn(), $userProfileView); } else { if ($loginModel->isLoggedIn()) { $userProfileView->setUser(null); $layoutView->render($loginModel->isLoggedIn(), $userProfileView); } else {