'Sıska kontrolörler, yağ modelleri' kavramı ve Görünümlerin çıktı için veri gerektiğinde Modelleri doğrudan çağırabileceği genel kabulü göz önüne alındığında, taleplerin Kontroller yerine Görünümler içindeki 'alma ve görüntüleme' bölümlerini ele alması düşünülmeli mi? Örneğin (kodu oldukça genel tutmaya çalıştı):
kontrolör
<?php
class Invoice extends Base_Controller {
/**
* Get all the invoices for this month
*/
public function current_month() {
// as there's no user input let's keep the controller very skinny,
// DON'T get data from the Model here, just load the view
$this->load->view('invoice/current_month');
}
}
Görünüm
<?php
// directly retrieve current month invoices here
$invoices = $this->invoice_model->get_current_month();
// get some other display-only data, e.g. a list of users for a separate list somewhere on the page
$users = $this->user_model->get_users();
?>
<h1>This month's invoices</h1>
<ul>
<?php foreach ($invoices as $invoice) { ?>
<li><?php echo $invoice['ref']; ?></li>
<?php } ?>
</ul>
Bana göre, bu, bir talebin sadece bir Görüş olduğu durumlarda en azından bir anlam ifade eder. Denetleyici neden sadece kendisini alabildiği zaman verileri toplamalı ve Görünüm'e aktarmalıdır? Bu, Denetleyiciyi tamamen 'Uygulama seviyesi' işleme (örneğin GET / POST isteklerini işleme, erişim haklarını ve izinlerini yönetme vb.) Ve Modellerin tekrar kullanılabilir olmasını ve diğer tüm iyi şeyleri açık tutmaya açık bırakır.
Bu örnek, kullanıcının sonuçları filtrelemesine izin vermek için genişletildiyse, Denetleyici POST'u formdan işleyecek ve filtreleri Görünüm'e geçirecek ve daha sonra verileri bu kez filtrelerle tekrar isteyecektir.
Bu bir MVC uygulaması geliştirmek için geçerli bir yaklaşım mı? Yoksa Denetleyicinin oynaması gereken rolün önemli bir bölümünü mi görüyorum?
offers_model->get_latest()
? Bunu kontrolördeki her yönteme eklemek (daha önce aptalca denediğim gibi) aşırı doldurma ve belirgin olarak KURU gibi görünmüyor.