কন্ট্রোলার সাধারণত একটি নির্দিষ্ট সংস্থান (একটি সত্তা শ্রেণি, ডাটাবেস একটি টেবিল) জন্য তৈরি করা হয়, কিন্তু অ্যাপ্লিকেশন একটি নির্দিষ্ট অংশ সঙ্গে দায়ী যে ক্রিয়া একসাথে গ্রুপ তৈরি করা যেতে পারে। আপনার উদাহরণগুলিতে, এটি আ কন্ট্রোলার যা অ্যাপ্লিকেশনটির সুরক্ষা পরিচালনা করে:
class SecurityController
{
// can handle both the login page display and
// the login page submission
login();
logout();
register();
// optional: confirm account after registration
confirm();
// displays the forgot password page
forgotPassword();
// displays the reset password page
// and handle the form submission
resetPassword();
}
দ্রষ্টব্য : সুরক্ষা সম্পর্কিত ক্রিয়া এবং ব্যবহারকারী প্রোফাইল ক্রিয়াকে একই নিয়ামকের মধ্যে রাখবেন না; এগুলি বোধগম্য হতে পারে কারণ তারা ব্যবহারকারীর সাথে সম্পর্কিত, তবে একটির প্রমাণীকরণ হ্যান্ডেল করা উচিত এবং অন্যটির ইমেল, নাম ইত্যাদি আপডেটগুলি পরিচালনা করা উচিত।
সংস্থাগুলির জন্য উত্সগুলির জন্য তৈরি করা হয়েছে (আসুন আমরা বলি Task
) আপনার স্বাভাবিক সিআরইউডি ক্রিয়াকলাপ হবে:
class TasksController
{
// usually displays a paginated list of tasks
index();
// displays a certain task, based on an identifier
show(id);
// displays page with form and
// handles form submission for creating
// new tasks
create();
// same as create(), but for changing records
update(id);
// displays confirmation message
// and handles submissions in case of confirmation
delete()
}
অবশ্যই, আপনার একই নিয়ন্ত্রণকারীর সাথে সম্পর্কিত সংস্থান যুক্ত করার সম্ভাবনা রয়েছে। উদাহরণস্বরূপ বলুন আপনার সত্তা রয়েছে Business
এবং প্রত্যেকের বেশ কয়েকটি BusinessService
সত্ত্বা রয়েছে। এর জন্য একটি নিয়ামক এর মতো দেখতে পাবেন:
class BusinessController
{
index();
show(id);
create();
update(id);
delete();
// display the business services for a certain business
listBusinessServices(businessId);
// displays a certain business service
showBusinessService(id);
// create a new business service for a certain business
createBusinessService(businessId);
// updates a certain business service
updateBusinessService(id);
// deletes a certain business service
deleteBusinessService(id);
}
এই পদ্ধতির অর্থ হয় যখন সম্পর্কিত শিশুদের সত্তা পিতামাতার সত্তা ব্যতীত বিদ্যমান থাকতে পারে না।
এগুলি আমার প্রস্তাবনাগুলি:
- একাধিক সম্পর্কিত ক্রিয়াকলাপের উপর ভিত্তি করে কন্ট্রোলার তৈরি করুন (সুরক্ষা, বা সংস্থানসমূহে সিআরইউডি অপারেশন ইত্যাদির মতো নির্দিষ্ট দায়িত্ব পরিচালনা করা);
- সংস্থান-ভিত্তিক নিয়ন্ত্রকদের জন্য, অপ্রয়োজনীয় ক্রিয়াগুলি যুক্ত করবেন না (যদি আপনি সংস্থানটি আপডেট করার কথা না বলে থাকেন তবে আপডেট ক্রিয়াটি যুক্ত করবেন না);
- জিনিসগুলিকে সরল করতে আপনি "কাস্টম" ক্রিয়া যুক্ত করতে পারেন (যেমন আপনার
Subscription
সত্তা রয়েছে যা সীমিত সংখ্যক এন্ট্রিগুলির উপর ভিত্তি করে একটি প্রাপ্যতা রয়েছে, আপনি নিয়ামকের নামের একটি নতুন ক্রিয়া যুক্ত করতে পারেন যার use()
একটিতে একটি প্রবেশিকা বিয়োগ করার একক উদ্দেশ্য রয়েছে Subscription
)
- জিনিসগুলি সহজ রাখুন - বিপুল সংখ্যক ক্রিয়া এবং জটিল যুক্তি দিয়ে আপনার নিয়ামককে বিশৃঙ্খলা করবেন না, ক্রিয়া সংখ্যা কমিয়ে বা দুটি নিয়ামক তৈরি করে জিনিসগুলিকে সরল করার চেষ্টা করুন;
- আপনি যদি কোনও এমভিসি কেন্দ্রিক কাঠামো ব্যবহার করেন তবে তাদের সেরা অনুশীলনের দিকনির্দেশগুলি (যদি তাদের কাছে থাকে) অনুসরণ করুন।
এখানে আরও পড়ার জন্য কিছু সংস্থান ।