コード例 #1
0
ファイル: index.php プロジェクト: Overfinch/oop
 public static function getInstance($id, PDO $pdo)
 {
     // ФАБРИКА которая находит товар в БД по id и создаёт обьект нужного типа
     $stmt = $pdo->prepare("SELECT * FROM products WHERE id=?");
     // подготавливаем выборку по id
     $result = $stmt->execute([$id]);
     // выполняем
     $row = $stmt->fetch();
     // получаем результат
     if (empty($row)) {
         // проверяем не пуста ли строка
         return null;
     }
     if ($row['type'] == "book") {
         // проверяем "тип"
         $product = new BookProduct($row['title'], $row['firstname'], $row['mainname'], $row['price'], $row['numpages']);
     } else {
         if ($row['type'] == "cd") {
             // проверяем "тип"
             $product = new CDProduct($row['title'], $row['firstname'], $row['mainname'], $row['price'], $row['playlength']);
         } else {
             // если неизвесный "тип", то применяем родительский класс ShopProduct
             $product = new ShopProduct($row['title'], $row['firstname'], $row['mainname'], $row['price']);
         }
     }
     $product->setId($row['id']);
     // назначаем id согласно id из БД
     $product->setDiscount($row['discount']);
     // назначаем скидку согласно скидке из БД
     return $product;
     // возвращаем полученый обьект нужного нам класса
 }
コード例 #2
0
ファイル: ShopProduct.php プロジェクト: ssgonchar/patterns
 public static function getInstance($id, PDO $pdo)
 {
     $stmt = $pdo->prepare("select * from products WHERE id = ?");
     $result = $stmt->execute(array($id));
     $row = $stmt->fetch();
     if (empty($row)) {
         return null;
     }
     if ($row['type'] == "book") {
         $product = new BookProduct($row['title'], $row['firstname'], $row['mainname'], $row['price'], $row['numpages']);
     } elseif ($row['type'] == "cd") {
         $product = new CDProduct($row['title'], $row['firstname'], $row['mainname'], $row['price'], $row['playlength']);
     } else {
         $product = new ShopProduct($row['title'], $row['firstname'], $row['mainname'], $row['price']);
     }
     $product->setId($row['id']);
     $product->setDiscount($row['discount']);
     return $product;
 }