Ben MVC ile ilgili çeşitli makaleleri okuma ve birisi muhtemelen yanıtlayan bana yardımcı umuyordum bir kaç soru vardı oldum.
MODEL veri temsili ve bu verileri işlemek için bir araçtır Öncelikle eğer, o zaman ortak bir arayüzü kullanarak soyutlama belirli bir düzeyde bir veri erişim nesnesi (DAO) çoğu görev için yeterli olmalıdır gerekir değil?
(Yani UNIX_TIMESTAMP) - - benim SQL tabloların yapımında ve bir soyut kullanılan daha bu noktada ayrıntılı için, ben satıcı belirli işlevleri kaçınılmalıdır eğer benim geliştirme çoğu, benim veriler için temel depolama mekanizması olarak MySQL ile yapılır demek MySQL ve belki PostgreSQL veya MySQL ve SQLite arasında hareket ortak bir arayüze sahip DB nesne, basit bir süreç olmalıdır.
İşte bazı görevi de alıyorum ne, bir tek CONTROLLER tarafından işlenir - (yani UserRegistration) ve yerine bir MODEL bu görev için oluşturarak, ben bir örneğini getirebilirsin db nesne - (yani DB :: getInstance ()) - Daha sonra gerekli db yeni bir kullanıcı INSERT aramaları yapmak. Neden böyle basit bir görev ile yeni bir yaratacak MODEL?
Bazı örneklerde bir MODEL oluşturulur gördüm, ve o içindeki MODEL sipariş tablosundan siparişlerin x sayıda alınır ve bir dizi döndüren bir SELECT deyimi var. Neden bunu, eğer sizin CONTROLLER senin bu dizi üzerinden yineleme ve VIEW atamak için başka bir döngü oluşturarak; ex. 1?
ex. 1:
foreach ($list as $order) { $this->view->set('order', $order); }
Böyle bir şey muhtemelen bu yüzden bir dönüşünü değiştirmek sanırım; ex. 2.
ex. 2:
while ($order = $this->model->getOrders(10)) { $this->view->set('order', $order); }
Benim argüman basitçe CONTROLLER içinde gerekli db arama yapabilirsiniz zaman neden web sitelerinin çoğu şüpheli olarak, sizin verilerinize erişmek için ortak bir arayüz ile bir DB nesnesi kullanarak varsayarak, bir model oluşturmak olduğunu tahmin kullanıyorsunuz. Yapılıyor ne çoğu mutlaka ayrı bir MODEL garanti değil yeterince basit olduğunda Evet ben yine bu tüm görev için pratik bekliyoruz, ama yok.
Bir kullanıcı bir istek 'www.mysite.com/Controller/action/args1/args2' yapar hemen duruyor gibi, ön denetleyicisi (Ben yönlendirici diyoruz) Controller (sınıf) kapalı geçen ve denetleyici içindeki belli bir eylem ( yöntemi) olarak adlandırılır ve oradan uygun VIEW oluşturuldu ve daha sonra çıkarılır.