PDO FETCH_INTO Fabrikası?

0 Cevap php

I ProductFactory adında bir fabrika var

Ben bu yüzden böyle bir ürün oluşturabilirsiniz:

$product = ProductFactory::getProduct($id);

Şimdi biz alıyorsanız ürün türüne bağlı olarak, bu işlev türü Product ya da soyundan veya Product sınıfını döndürebilir.

Ancak yukarıda yöntemini kullanarak, $product sınıf veritabanına bağlanmak ve verileri almak için sorumlu olacaktır.


Ben bir kategori listede görüntülenecek 20 ürünleri seçmek için olsaydı Yani, her şeyden önce kimlikleri daha sonra yukarıdaki işlevini 20 kez çağrı listesini almak gerekir. Bu veritabanına 21 çağrılar olacaktır.

Yani şöyle benim fabrikaya başka bir fonksiyonu eklendi:

$product = ProductFactory::createProduct($data);

Eğer yolculuk yapmak zorunda $product sınıf tasarrufu, veritabanından veri geçirmek dışında bu, aynı şeyi yapar. (Geçmek istediğiniz verilere bağlı olarak, fabrika sınıf sağ türünü dönecektir).

Yani şimdi ben her satır için bir $ ürün nesnesi oluşturmak için tüm ürünler veri ve FETCH_INTO benim fabrika seçmek için bir çağrı yapmak istiyorum.

Bunu nasıl yapabilirim?

update

Burada işe yaramadı denedim budur:

$stmt->setFetchMode(PDO::FETCH_INTO,ProductFactory::createProduct);
foreach($stmt as $product)
{
    echo get_class($product) . '<br>';
}

0 Cevap