অনেকেই আছেন MVC নামটা শুনলেই ভয় খেয়ে যান। মনে করে বসেন এটা অনেক কঠিন একটা জিনিস। শিখতে বা বুঝতে অনেক সময় লাগবে, প্রোগ্রামিং এ দীর্ঘদিন না থাকলে এটা বোঝা সম্ভব না।
তাদের জন্য বলছি। MVC এমন কঠিন কিছু না। প্রথমেই এটা নিশ্চিত জেনে নিন যে MVC একেবারেই সহজ একটা ব্যাপার। সামান্য একটু কনসেন্ট্রেট করলেই বুঝতে পারবেন। এই টিউনটি যদি মনযোগ সহকারে পড়েন তাহলে আমার বিশ্বাস টিউনটি পড়া শেষ হলে আপনার কাছে MVC কে আর কঠিন কিছু মনে হবে না।
MVC এর Full Meaning হল Model View Controller. এটি কোন এ্যাপ্লিকেশনের কাজ করার একটি পদ্ধতি মাত্র।
ধরুন আপনার এই মুহূর্তে টাকা দরকার। আপনি টাকাটি আপনার মায়ের কাছে চাইলেন আর মা টাকাটি আপনার বাবার কাছে চাইল, বাবা টাকাটি তার ক্যাশ বাক্স থেকে তুলে আপনার মায়ের কাছে দিল এবং মা সেই টাকা আবার আপনার হাতে দিল। সহজভাবে চিন্তা করলে MVC মূলত এই পদ্ধতিতেই কাজ করে। MVC বেজড এ্যাপ্লিকেশনে তিনটি প্রধান পার্ট থাকে। Model, Controller এবং View.
Model: ডাটাবেজ নিয়ে কাজ করে। ডাটাবেজে ডাটা ইনসার্ট করে, ডিলিট করে, আপডেট করে এবং ডাটাবেজ থেকে ডাটা তুলে আনে। এটি একটি ক্লাশ। ক্লাশ অর্থ হল অনেকগুলো ফাংশনের সমষ্টি। এখানে প্রত্যেকটি অপারেশনের(ইনসার্ট, আপডেট, ডিলিট, রিট্রিভ) জন্য বিভিন্ন ফাংশন লেখা হয়। ফাংশনগুলো প্রয়োজনমত Controller থেকে কল করা হয়। এটি আপনার বাবার ভূমিকা পালন করছে।
Controller: এটির নাম যেমন Controller তেমনি এটি কন্ট্রোলিং এর ভূমিকা পালন করে। View এবং Model কে নিয়ন্ত্রন করাই এর কাজ। এটিও একটি ক্লাশ যা অনেক গুলো ফাংশনের সমষ্টি। কোন ভিউ কখন প্রদর্শিত হবে, কিভাবে প্রদর্শিত হবে, প্রদর্শিত হবার সময় তার কাছে কি কি ডাটা যাবে, সেই ডাটাগুলো Model এর কোন ফাংশন প্রদান করবে অর্থাত View কে ডাটা দেবার জন্য কোন ফাংশনকে কল করা হবে, সবকিছুই করে থাকে Controller. উদাহরণের মা হল এই Controller.
View: এটি মূলত Interface যা ব্রাউজার আপনার সামনে প্রদর্শন করে। এখানে User কে কোন ফর্ম দেয়া হল যাতে সে ইনপুট দিতে পারে যা ডাটাবেজে সংরক্ষিত হবে(যেমন: আপনি কোন ওয়েব সাইটে রেজিষ্ট্রেশন করছেন), বা User কে কোন লিংক দেয়া হল যেখানে ক্লিক করলে সে রেজিস্ট্রেশন এর সময় যে তথ্যগুলো দিয়েছিল সব দেখতে পারবে। উদাহরণে এটি হচ্ছেন আপনি।
MVC খুবই গোছানো অর্ডারড একটি পদ্ধতি কাজ করে।
কাজের Flow টা এরকম: View->Controller->Model
অথবা এরকম: Model->Controller->View
ধরুন ব্রাউজারে আপনি একটি পেজ খুলে আছেন। পেজে একটি লিংক প্রদর্শিত হচ্ছে যেখানে ক্লিক করলে আপনি আপনার সকল তথ্য বা প্রোফাইল দেখতে পাবেন। লিংকে ক্লিক করলে যা ঘটবে:
আপনি ছিলেন View তে। View এর লিংকের href এ Controller এর একটি ফাংশনকে উল্লেখ করা আছে। আপনি যখনই ঐ লিংকে ক্লিক করবেন তখন Flow চলে যাবে কন্ট্রোলারের ঐ নির্দিষ্ট ফাংশনে। সেখানে Model এর একটি ফাংশনকে কল করা আছে যে ফাংশনটি ডাটাবেজ থেকে সব ডাটা তুলে আনবে। Flow চলে যাবে Model এর সেই ফাংশনে। ফাংশনটি ডাটাবেজ থেকে সব ডাটা তুলে আনবে এবং Flow আবার চলে আসবে কন্ট্রোলার এর সেই ফাংশনে। এখানে আবার ভিউ এর একটি পেজকে কল করা আছে। কন্ট্রোলার সেই পেজ এ ডাটাগুলোকে পাঠিয়ে দেবে। এবং ভিউ নিজের মত করে ডাটাগুলোকে প্রদর্শন করবে।
এখানে যে প্রসেসটি হল তাকে গ্রাফিক্যালি প্রদর্শন করলে এরকম দেখাবে:
আমাদের চেইন টিউনের আলোচ্য বিষয় কোডইগনিটার মূলত MVC প্যাটার্নেই কাজ করে থাকে। কোডইগনিটারে অন্যান্য কনফিগারেশন এবং সিস্টেম ফাইলের সাথে থাকে Model, View এবং Controller. এবং এই তিনটির মাধ্যমে সে MVC প্যাটার্ন ফলো করে কাজ করে। সুতরাং কোডইগনিটার শিখতে চাইলে প্রথম শর্ত হল MVC এর এই সহজ ফ্লোটি বুঝতে হবে।
আজকে আপাতত এই পর্যন্তই, আগামী পর্বে আমরা কোগইগনিটারে কিভাবে MVC কাজ করে তা হাতে কলমে দেখব।
পুনশ্চ: বিগত পোষ্টে আপনাদের তেমন উতসাহব্যঞ্জক সাড়া পাই নি। যদি চান টিউনটি নিয়মিত হোক তাহলে মন্তব্য করে উতসাহিত করাটাও আপনাদেরই দায়িত্ব।
আমি নাজমুল হাসান নিরো। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 12 বছর 11 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 6 টি টিউন ও 64 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 0 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।
ব্রাদার, এটা মনে হয় চার তম পর্ব।