Büyük MySQL Resultset bilgileri için Nesne Atama

3 Cevap php

Merhaba (benim kötü İngilizce için özür dilerim)

Is it bad practice to assign object to view and call its methods in there? I use smarty as my template engine.

Benim denetleyicisi böyle yapabilirim

1 #

$this->view->assign("name", $this->model->getName);

ve benim görüşüme göre

<p>{$name}</p>

VEYA

2 #

$this->view->assign("Object", $this->model);

ve benim görüşüme göre

<p>{$Report->getName()}</p>

Peki benim en büyük sorunum ben veri MySQL çıkan büyük miktarda işlemek zorunda ve ben mysql_fetch_row döngü sırasında ben bir yöntem yapılmış olsaydı verileri yazdırmak olacağını düşündüm olmasıdır. Eh, en azından ben modelinde html etiketleri kullanarak yapmak kötü bir şey olduğunu biliyorum.

Yani sayfada doğru pozisyona sonucu elde etmek görünümüne nesne atamak istiyorum ..

Önce bir dizi için bir mysql-sonuç Okuma hafıza problemleri haklı mıyım neden olabilir? Yani işler MVC tarzı yapıyor çözümü nedir ..

Ve evet Im benim kendi çerçevesini kullanarak.

3 Cevap

Ideally you should use the first approach. Unfortunately we don't live in an ideal world. If it's too much of a pain to do that I don't really see a problem with the second approach. Isn't there a way to compromise though? If you could get the names of the columns from your model as an array, you could loop through them and assign each value to smarty dynamically. That way your view would be simpler and you'd avoid a lot of code in the controller.

Çok fazla bellek ayırdığınız gelince ... Eğer bir sayfada yayınlamak istediğiniz veri miktarı çok fazla bellek alacağını ihtimal dışı görünüyor. Sana (tek bir sayfada çok fazla şeyler) bellek sorunları uzun zaman önce UI sorunlarınız olurdu düşünüyorum. Her durumda neden basit bir kriter çalışmayın. Bunun için PHP'nin memory_get_usage () işlevini kullanabilirsiniz.

MVC açısından, ben çoğunlukla ilk yöntem kullanılan gördük. Denetleyicisi tüm işleme mantığı koymak ve sadece ekran görünümü ({$Report->getName()}) oraya işleme koymak için hiçbir ihtiyacı için View kullanın.

benim açımdan Model doğrudan konuşarak Görünümleri hakkında yanlış bir şey yok. Ayrıca, bu klasik "üçgen" MVC çalışmak gerekiyordu nasıl.