Yii ফ্রেমওয়ার্কে URL Rules এবং Routing Configuration অ্যাপ্লিকেশনের URL কিভাবে রিডিরেক্ট হবে, কোন কন্ট্রোলার এবং অ্যাকশন এই URL-এর জন্য রেসপন্ড করবে তা নির্ধারণ করে। URL রুলস এবং রাউটিং কনফিগারেশন আপনাকে উন্নত এবং পরিষ্কার URL তৈরি করতে সহায়তা করে, যা অ্যাপ্লিকেশনের ব্যবহারের অভিজ্ঞতা উন্নত করে।
URL Rules
Yii ফ্রেমওয়ার্কে URL Rules হল একটি কনফিগারেশন, যা আপনাকে ইউআরএল প্যাটার্ন এবং তার সাথে সম্পর্কিত কন্ট্রোলার এবং অ্যাকশন নির্ধারণ করতে সাহায্য করে। URL রুলস আপনাকে SEO-ফ্রেন্ডলি URL তৈরি করতে সাহায্য করে এবং URL-এর মাধ্যমে নির্দিষ্ট কন্ট্রোলার বা অ্যাকশনে পৌঁছানোর পথ সরল করে।
১. URL Rules কনফিগারেশন ফাইল
Yii 2-এ URL রুলস সাধারণত config/web.php ফাইলে কনফিগার করা হয়। এটির মধ্যে urlManager কম্পোনেন্টের মাধ্যমে ইউআরএল রুলস ডিফাইন করা হয়।
'components' => [
'urlManager' => [
'enablePrettyUrl' => true, // Pretty URL সক্রিয় করা
'showScriptName' => false, // index.php ফাইল লুকিয়ে রাখা
'rules' => [
'about' => 'site/about', // /about URL site কন্ট্রোলারের about অ্যাকশন নির্দেশ করবে
'contact' => 'site/contact', // /contact URL site কন্ট্রোলারের contact অ্যাকশন নির্দেশ করবে
],
],
],
- enablePrettyUrl: এটি যদি
trueথাকে, তবে URL গুলি pretty বা পরিষ্কার ফরম্যাটে থাকে (যেমন:site/about), আর যদিfalseথাকে, তাহলে URL-এindex.phpথাকবে (যেমন:index.php?r=site/about). - showScriptName: এটি
falseকরলেindex.phpফাইলটি URL থেকে লুকিয়ে যাবে। - rules: এখানে URL প্যাটার্ন এবং তার সাথে সম্পর্কিত কন্ট্রোলার এবং অ্যাকশন উল্লেখ করা হয়।
URL Rules উদাহরণ
স্ট্যাটিক পেজের URL তৈরি: যদি আপনার অ্যাপ্লিকেশনে
aboutএবংcontactনামে দুটি স্ট্যাটিক পেজ থাকে, আপনি নিচের রুল ব্যবহার করতে পারেন:'rules' => [ 'about' => 'site/about', 'contact' => 'site/contact', ],এখানে
/aboutইউআরএলsite/aboutঅ্যাকশন নির্দেশ করবে এবং/contactইউআরএলsite/contactঅ্যাকশন নির্দেশ করবে।ডাইনামিক প্যারামিটার সহ URL: যদি আপনি ডাইনামিক প্যারামিটার ব্যবহার করতে চান, যেমন: প্রোডাক্টের বিস্তারিত দেখানোর জন্য:
'rules' => [ 'product/<id:\d+>' => 'product/view', ],এই রুলে
/product/5URLটিproductকন্ট্রোলারেরviewঅ্যাকশন কল করবে এবংid=5প্যারামিটারটি ঐ অ্যাকশনে পাস করবে।অ্যাপ্লিকেশনের মডিউল সহ URL: আপনি যদি অ্যাপ্লিকেশনে মডিউল ব্যবহার করেন, তবে মডিউল এবং অ্যাকশনের URL রুল কনফিগার করতে পারেন:
'rules' => [ 'admin/<controller:\w+>/<action:\w+>' => 'admin/<controller>/<action>', ],এটি
/admin/site/indexURL-এadminমডিউলেরsiteকন্ট্রোলারেরindexঅ্যাকশন নির্দেশ করবে।নেস্টেড রুলস: আপনি নেস্টেড রুলসও ব্যবহার করতে পারেন, যেমন:
'rules' => [ 'news/<category:\w+>/<id:\d+>' => 'news/view', ],এই রুলটি
/news/technology/10ইউআরএলটিnewsকন্ট্রোলারেরviewঅ্যাকশন কল করবে এবংcategory=technologyওid=10প্যারামিটার পাস করবে।
Routing Configuration
Yii ফ্রেমওয়ার্কে Routing হল ইউআরএল রুলের মাধ্যমে কন্ট্রোলার এবং অ্যাকশন নির্ধারণের প্রক্রিয়া। রাউটিং কনফিগারেশন সাধারণত urlManager কম্পোনেন্টের মাধ্যমে করা হয়, যা URL রুলস এবং অ্যাপ্লিকেশনের কাঠামো নিয়ন্ত্রণ করে।
১. Routing কনফিগারেশন (Basic Example)
'components' => [
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'news/<category:\w+>' => 'news/index', // Dynamic category URL
'product/<id:\d+>' => 'product/view', // Dynamic product URL
],
],
],
এখানে আমরা news এবং product অ্যাকশনগুলোকে কাস্টম URL প্যাটার্নের মাধ্যমে রাউট করেছি।
২. Default Route
Yii ফ্রেমওয়ার্কের একটি ডিফল্ট রাউটও থাকে যা মূল অ্যাকশন কল করার জন্য ব্যবহৃত হয়, যদি ইউআরএলটি কাস্টম রুলের সাথে মেলানো না যায়।
'defaultRoute' => 'site/index', // default route
এটি অ্যাপ্লিকেশনকে নির্দেশ করে যে যদি কোন কাস্টম URL না পাওয়া যায়, তবে site/index অ্যাকশন কল হবে।
৩. Complex Routing Example
আপনি আরও জটিল রাউটিং কনফিগারেশন করতে পারেন। উদাহরণস্বরূপ, যদি আপনার অ্যাপ্লিকেশনটি অ্যাডমিন প্যানেল এবং ফ্রন্টএন্ড অংশ নিয়ে তৈরি হয়:
'components' => [
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'admin/<controller:\w+>/<action:\w+>' => 'admin/<controller>/<action>',
'profile/<username:\w+>' => 'user/profile',
],
],
],
এখানে /admin/post/create URLটি admin কন্ট্রোলারের post অ্যাকশন কল করবে এবং /profile/john URLটি user/profile অ্যাকশন কল করবে যেখানে username=john প্যারামিটার পাস হবে।
সারাংশ
- URL Rules হল সেই নিয়মাবলী যা URL প্যাটার্ন এবং সংশ্লিষ্ট কন্ট্রোলার অ্যাকশনের মধ্যে সম্পর্ক স্থাপন করে।
- Routing Configuration URL রুলস কনফিগারেশনের মাধ্যমে রাউটিং এবং ইউআরএল প্যাটার্ন নির্ধারণ করে, যা অ্যাপ্লিকেশন ব্যবহারে সহায়ক হয়।
- Yii ফ্রেমওয়ার্কে URL রুলস এবং রাউটিং কনফিগারেশন অ্যাপ্লিকেশনের সার্বিক কাঠামো এবং SEO ফ্রেন্ডলি URL তৈরি করতে সাহায্য করে।