'চর্মসার নিয়ন্ত্রক, চর্বিযুক্ত মডেল' ধারণা এবং আউটপুট জন্য ডেটা প্রয়োজন যখন ভিউগুলি সরাসরি মডেলগুলিতে কল করতে পারে সেই সাধারণ গ্রহণযোগ্যতা দেওয়া, কেউ কি ভিউয়ের মধ্যে অনুরোধের অংশগুলি 'পান এবং প্রদর্শন' পরিচালনা করার কথা বিবেচনা করবেন এবং নিয়ামককে নয়? উদাহরণস্বরূপ (কোডটি মোটামুটি জেনেরিক রাখার চেষ্টা করা হয়েছে):
নিয়ামক
<?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');
}
}
দৃশ্য
<?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>
আমার কাছে এটি কোনও ক্ষেত্রে অনুরোধটি কেবলমাত্র একটি ভিউ হিসাবে অন্তত কিছুটা বোঝায়। কন্ট্রোলারকে কেন কেবল তথ্যটি পুনরুদ্ধার করতে পারে তা ভিউতে ডেটা সংগ্রহ এবং প্রেরণ করা উচিত? এটি নিয়ন্ত্রককে পুরোপুরি 'অ্যাপ্লিকেশন স্তর' প্রসেসিংয়ের জন্য উন্মুক্ত করে (যেমন জিইটি / পোষ্ট অনুরোধগুলি পরিচালনা করা, অ্যাক্সেসের অধিকার এবং অনুমতিগুলি পরিচালনা করা ইত্যাদি) পাশাপাশি মডেলগুলিকে পুনরায় ব্যবহারযোগ্য এবং অন্যান্য সমস্ত ভাল জিনিস রাখা keeping
যদি এই উদাহরণটি কোনও ব্যবহারকারীর ফলাফলগুলিকে ফিল্টার করার অনুমতি দেওয়ার জন্য প্রসারিত করা হয়, তবে কন্ট্রোলার ফর্মটি থেকে কেবল পোস্টটি পরিচালনা করবে এবং ফিল্টারগুলি ভিউতে সরিয়ে দেবে, যা ফিল্টারগুলির সাথে এবার আবার ডেটার জন্য অনুরোধ করবে।
এটি কি এমভিসি অ্যাপ্লিকেশন বিকাশের জন্য একটি বৈধ পন্থা? বা আমি একজন নিয়ামকের যে ভূমিকা পালন করতে হবে তার একটি গুরুত্বপূর্ণ অংশটি উপেক্ষা করছি?
offers_model->get_latest()
? নিয়ামকটির প্রতিটি পদ্ধতিতে এটি যুক্ত করা (যেমন আমি আগে বোকামি দিয়ে চেষ্টা করেছি) ওভারকিলের মতো এবং স্পষ্টতই অ-ডিআরওয়ির মতো মনে হয়।