Example #1
0
 public static function withValues($email, $password, $isDriver = false, $isDispatcher = false, $isfirstTime = false, $isAdmin = false, $firstName = null, $lastName = null)
 {
     // Calls private user constructor with provided arguments
     $instance = new self($email, $isDriver, $isDispatcher, $isfirstTime, $isAdmin, $firstName, $lastName);
     // Sets password. Returns null on error
     try {
         $instance->setPassword($password);
     } catch (InvalidArgumentException $e) {
         return null;
     }
     $db = DB::getInstance();
     try {
         $result = $db->multi_prep_execute(['INSERT INTO users (email, isAdmin, isDispatcher, isfirstTime, isDriver, firstName, lastName) VALUES (:email, :isAdmin, :isDispatcher, :isfirstTime, :isDriver, :firstName, :lastName);', 'INSERT INTO passwords (email, password) VALUES (:email, :password);'], array([':email' => $instance->getEmail(), ':isAdmin' => $instance->getIsAdmin(), ':isDriver' => $instance->getIsDriver(), ':isDispatcher' => $instance->getIsDispatcher(), ':isfirstTime' => $instance->getIsfirstTime(), ':firstName' => $instance->getFirstName(), ':lastName' => $instance->getLastName()], [':email' => $instance->getEmail(), ':password' => $instance->password]));
         if ($result) {
             $instance->setInDB(true);
         }
     } catch (PDOException $e) {
     }
     // Returns new user object
     return $instance;
 }