public function register() { $token = $this->helper->createToken(); $logged = $this->loginHelper->isLoggedIn(); $registerStudentForm = new RegisterStudentForm(); if ($logged) { $registerStudentForm->setStudent($logged); } $errors = new ErrorList(); if ($_SERVER['REQUEST_METHOD'] == 'POST') { $registerStudentForm->fillDataFromArray($_POST); $errors = $this->validations->validRegisterStudentForm($registerStudentForm, $logged); // $logged - $editMode if (!$errors->hasErrors()) { if ($this->helper->validToken($registerStudentForm->getToken())) { if ($logged) { $this->studentGateway->updateStudent($registerStudentForm->getStudent()); if ($registerStudentForm->getPassword != "") { $this->loginHelper->createCookies($registerStudentForm->getStudent()); } $this->redirect('/public/index.php?notify=Success'); } else { $this->studentGateway->addStudent($registerStudentForm->getStudent()); $this->loginAction->login(); $this->redirect($this->getQuery('go')); } } else { throw new \Exception("Invalid token"); } } } $this->render('templates/registration.phtml', compact('registerStudentForm', 'errors', 'token', 'logged')); }