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>';
}