/** * Registers a user. * * @param RegisterUserBinding $user The RegisterUserBinding, containing all the register information. */ public function save(RegisterUserBinding $user) { if (!Validator::validateRegistrationInformation($user)) { return; } $query = "INSERT INTO users(username, password, email, role_id) VALUES(:username, :password, :email, :role_id)"; $stmt = $this->db()->prepare($query); $stmt->execute([':username' => $user->username, ':password' => Hash::password($user->password), ':email' => $user->email, ':role_id' => UserFactory::DEFAULT_USER_ROLE]); $id = $this->db()->lastInsertId(); $persistedUser = $this->find(['id' => $id]); return $persistedUser; }