public function searchStudents($search, $order = 'id', $by = 'ASC', $limit = 2147483647, $offset = 0)
 {
     $pdo = $this->getPdo();
     $allowedOrder = ["name", "surname", "gender", "grupNumber", "email", "satScores", "yearOfBirth", "location"];
     $allowedBy = ["ASC", "asc", "DESC", "desc"];
     $order = (is_scalar($order) and in_array($order, $allowedOrder)) ? $order : 'satScores';
     $by = (is_scalar($by) and in_array($by, $allowedBy)) ? $by : 'ASC';
     $query = $pdo->prepare("SELECT * FROM students WHERE CONCAT(name, surname, grupnumber, email, satscores, yearofbirth, location) LIKE :search ORDER BY {$order} {$by} LIMIT :limit OFFSET :offset");
     $query->bindValue(':search', "%{$search}%");
     $query->bindValue(':limit', (int) $limit, \PDO::PARAM_INT);
     $query->bindValue(':offset', (int) $offset, \PDO::PARAM_INT);
     $query->execute();
     $results = $query->fetchAll(\PDO::FETCH_ASSOC);
     $students = new \SplObjectStorage();
     foreach ($results as $result) {
         $student = new Student();
         $student->fillAllData($result);
         $students->attach($student);
     }
     return $students;
 }
Example #2
0
 public static function setPassword(Student $student, $password)
 {
     $student->setSalt(LoginHelper::generateSalt());
     $student->setHash(LoginHelper::hashPassword($password, $student->getSalt()));
 }
<?php

require_once __DIR__ . '/../init.php';
use App\Model\Entity\Student;
$faker = Faker\Factory::create('ru_RU');
for ($i = 0; $i < 100; $i++) {
    $student = new Student();
    $student->setName($faker->firstNameMale);
    $student->setSurname($faker->lastName);
    $student->setGender($faker->randomElement(array("Man", "Woman")));
    $student->setGrupNumber($faker->bothify('??##'));
    $student->setEmail($faker->email);
    $student->setSATScores(mt_rand(1, 500));
    $student->serYearOfBirth($faker->year);
    $student->setLocation($faker->randomElement(array("local", "nonresident")));
    $student->setPassword($faker->password);
    $container['StudentGateway']->addStudent($student);
}
echo "ALL OK; Hungred Fake Students injected;";