লুথা
১ম পর্ব
পিএইচপি MVC ফ্রেমওয়ার্ক এর উপর তুলনামুলক আলোচনা
পিএইচপি, CodeIgniter, Symfony, CakePHP প্রতিটি ফ্রেমওয়ার্ক এর মধ্যে কিছু সাদৃশ্য রয়েছে.....
-->ডাটা প্রসেসিং এর জন্য মডেল তৈরির অপশন দেবে, ভিউ এ ডাটা দেখাবে এবং কন্ট্রোলার এর মাধ্যমে ইউজার এর ইনপুট এবং অ্যাকশন গ্রহন করবে এবং সে অনুযায়ী মডেল ও ভিউ কে আপডেট করবে।
-->আপনার নিজস্ব অ্যাপ্লিকেশন কম্পোনেন্ট গুলোকে আলাদাভাবে দেখানোর জন্য সন্দর করে সাজানো ফোল্ডার ব্যাবহার করবে।
--> গুরুত্বপূর্ণ ডাটা (ডাটাবেস এর নাম, বেইজ ইউ আর এল, ইত্যাদি) সমূহের জন্য configuration ফাইল ইউজ করবে।
--> আপনাকে মূল কোড আপডেট করতে দেবে এবং নিজস্ব লাইব্রেরী ও হেল্পার ফাংশন তৈরির সুজোগ দেবে।
এখন আমরা CodeIgniter, CakePHP, এবং Symfony এর মধ্যে পার্থক্য দেখব।
মুলত CodeIgniter কোন ক্ষেত্রে উপযুক্ত তা দেখার জন্য ফ্রেমওয়ার্কগুলোর কোনটা ভাল কোনটা খারাপ তা বোঝার জন্য নয়।
ডেভেলপার এর কাজ কমানো(আসলে আলসেমী বাড়ানো)
CakePHP আপনাকে খুব দ্রুত অ্যাপ্লিকেশন ডেভেলপ করতে সাহায্য করবে। আপনি যদি খুব গভীরে যেতে না চান তাহলে এটা ভাল কিন্ত উলটো হলে আপনাকে কোর কোড এ অনেক ঘুরাঘুরি করতে হবে।
Symfony আপনাকে দেবে কিছু কমান্ড -লাইন টুল যেগুলো দিয়ে আপনি admin panels, object - relational mapping schemes, views আপনি কেবল মাত্র কিছু স্ক্রিপ্ট রান করে তৈরি করতে পারবেন ।
CodeIgniter একটু অন্য রকম।
সবকিছু আপনার কন্ট্রোলার থেকে করতে হবে। লাইব্রেরী লোডিং, মডেল থেকে ডাটা এক্সট্রাকশন, ডাটা মডেল এ প্রেরণ সব। এ কারণে আপনার ট্রাবলশুটিং এ সময় কম লাগবে আর সবকিছু সাজান থাকবে। এর একটা অসুবিধা হচ্ছে -- শুরুতে অনেক ডেভেলপার (যারা একদম শুরুর দিকে আছেন) অনেক বড় কন্ট্রোলার তৈরি করেন যেটা পরবর্তীতে ম্যানেজ করা কষ্টকর হয়
মডেল
CakePHP সয়ংক্রিয় ভাবে যে মডেল current কন্ট্রোলার এর সাথে মিলে যায় তাকে লোড করে। (চাইলে আপনি এটা বন্ধ করতে পারবেন)
এটার সমস্যা হল এভাবে কাজ করলে আপনাকে নাম দেবার নিয়মকানুন খুব কঠোরভাবে অনুসরণ করতে হবে, যা মাঝে মাঝে মাথা খারাপ করার মত ।
প্রয়োজন পড়লে আপনি সরাসরি raw SQL queries ব্যাবহার করতে পারবেন
Symfony’ s আপনাকে হয় বিল্ট-ইন মেথড অথবা raw query যেকোন একটা ব্যবহারের সুযোগ দেবে। ডাটাবেজ create, retrieve, update, and delete এর জন্য Symfony এর বিল্ট-ইন মেথড রয়েছে।
CodeIgniter’ অন্যগুলোর মত অতটা সয়ংক্রিয় নয় কিন্ত আপনাকে অনেক দেবে। এখানে কোন নাম দেবার নিয়মকানুন নেই। আপনি মেইন
configuration ফাইল থেকে মডেল সয়ংক্রিয়/ম্যানুয়াল ভাবে লোড করতে পারবেন।
আপনি চাইলে এর বিল্ট-ইন মেথড অথবা raw query যেটা ইচ্ছা ব্যাবহার করতে পারবেন। আপনি চাইলে মডেল তৈরি না করে সরাসরি কন্টোলার এও কাজ করতে পারবেন ।
ভিউ
CakePHP অন্যান্য বিউ এর জন্য placeholders (
title_for_layout
and
content_for_layout
) ব্যবহার করে
এই সয়ংক্রিয় পদ্ধতিতে নাম দেবার নিয়মকানুন আছে। আপনি চইলে
এই ফিচার অভাররিড করে যেকোন নিয়মকানুন বানাতে পারেন।
Symfony XHTML এবং PHP snippets সাপোর্ট করে এমন টেম্পলেট ব্যবহার করে, এতে অনেক ধরনের হেল্পার ফাংশন আছে যেমন
input_tag() ইনপুট ফিল্ড এর জন্য,link_to() লিঙ্ক তৈরির জন্য
CodeIgniter’ এর পদ্ধতি অন্যগুলোর চইতে তুলনামূলক সরাসরি এবং সহ।
আপনি চাইলে আপনার টেম্পলেট কে অনেকভাগে ভাগ করে লোড করতে পারেন অথবা একটা ভিউ লোড করতে পারেন। CodeIgniter ও আপনাকে অনেক হেল্পার ফাংশন দেবে (create forms, links, HTML elements)
হেল্পার এবং লাইব্রেরী
CakePHP তে বিল্ট-ইন হেল্পার এবং লাইব্রেরী অনেক কম কিন্ত এতে কিছু query methods রয়েছে যেমন
find(),findAll(),query()
findBy < fieldname > () fieldname হল আপনার ডাটাবেজ ফিল্ড এর নাম।
Symfony বিল্ট-ইন টুল গুলো unit testing, scaffolding, এবং admin generation এর জন্য সবচেয়ে ভালো
CodeIgniter এর প্রচুর বিল্ট-ইন লাইব্রেরী এবং হেল্পার রয়েছে যা একটা application করতে প্রয়োজন হতে পারে( caching, security, file uploads, link building, form building, text,parsing regular expressions, database queries, FTP, e - mail, calendaring, sessions, pagination, image manipulation, validation, XML - RPC, dates, cookies, XML, এবং আরো অনেক। . আপনি চাইলে এগুলোকে নিজের মত পরিবর্ধন করতে পারেন চাইলে নিজে নতুন তৈরিও করতে পারেন।
ধন্যবাদ....
পুনশ্চঃ
----- অগোছালো লেখার জন্য ক্ষমা প্রার্থী
----- লিখা টা মৌলিক নয় (মুলত অনুবাদ এবং নিজের কিছু সংযোজন)
।
অনলাইনে ছড়িয়ে ছিটিয়ে থাকা কথা গুলোকেই সহজে জানবার সুবিধার জন্য একত্রিত করে আমাদের কথা । এখানে সংগৃহিত কথা গুলোর সত্ব (copyright) সম্পূর্ণভাবে সোর্স সাইটের লেখকের এবং আমাদের কথাতে প্রতিটা কথাতেই সোর্স সাইটের রেফারেন্স লিংক উধৃত আছে ।