Custom URL Rules তৈরি করা

রাউটিং এবং URL ম্যানেজমেন্ট - জী ফ্রেমওয়ার্ক (Yii Framework) - Web Development

245

Yii ফ্রেমওয়ার্কে URL রুলস (URL rules) ব্যবহার করে আপনি অ্যাপ্লিকেশন এর URL গুলি কাস্টমাইজ করতে পারেন। এর মাধ্যমে আপনার ওয়েব অ্যাপ্লিকেশনটি আরও পরিষ্কার এবং SEO-friendly হয়। URL rules ব্যবহার করে আপনি কীভাবে URL এর প্যারামিটারগুলিকে কন্ট্রোলারের অ্যাকশনগুলির সাথে ম্যাপ করবেন, তা নির্ধারণ করতে পারেন।

এখানে আমরা Yii 2-এর Custom URL Rules তৈরি করার প্রক্রিয়া আলোচনা করব।


১. Yii 2-এ Custom URL Rule তৈরি করা

Yii 2-এ URL রুলস কনফিগার করা হয় config/web.php ফাইলে, যেখানে আপনি 'urlManager' কম্পোনেন্টের মাধ্যমে URL রুলস সংজ্ঞায়িত করেন।

URL রুলস কনফিগারেশন:

urlManager কম্পোনেন্টের মধ্যে আপনি ডিফল্ট URL স্ট্রাকচার কনফিগার করতে পারেন এবং কাস্টম URL রুলসও যোগ করতে পারেন। Yii 2 URL রুলস সাধারণত রেগুলার এক্সপ্রেশন (regular expressions) ব্যবহার করে কাজ করে।

Basic উদাহরণ:
  1. web.php ফাইলে URL রুলস কনফিগার করা:

    config/web.php ফাইলে urlManager কম্পোনেন্টের মধ্যে 'rules' অংশে কাস্টম URL রুলস সংজ্ঞায়িত করা হয়।

    উদাহরণস্বরূপ, যদি আপনি চান যে site/index এর পরিবর্তে home URL ব্যবহার করা হোক, তাহলে আপনি নিম্নলিখিতভাবে কাস্টম URL রুল তৈরি করতে পারেন:

    'urlManager' => [
        'enablePrettyUrl' => true,
        'showScriptName' => false,  // index.php নয়
        'rules' => [
            'home' => 'site/index',  // 'home' URL এর জন্য 'site/index' অ্যাকশন কল করবে
        ],
    ],
    

    এখানে:

    • 'home' URL প্যাটার্ন হবে, যা 'site/index' কন্ট্রোলারের অ্যাকশন কল করবে।
  2. আরও কাস্টম URL রুলস যোগ করা:

    আপনি আরও কাস্টম রুলস যোগ করতে পারেন। যেমন, প্যারামিটার সহ URL:

    'urlManager' => [
        'enablePrettyUrl' => true,
        'showScriptName' => false,
        'rules' => [
            'product/<id:\d+>' => 'product/view',  // 'product/123' -> 'product/view' অ্যাকশন
        ],
    ],
    

    এখানে:

    • <id:\d+> প্যারামিটার id কে নির্দিষ্ট সংখ্যার জন্য অনুমোদিত করেছে।
    • product/<id:\d+> এর মাধ্যমে আপনি product/view অ্যাকশন কল করবেন এবং id প্যারামিটার পাঠাবেন।
  3. Multiple Parameters সহ কাস্টম URL রুল:

    আপনি একাধিক প্যারামিটার সহ কাস্টম URL তৈরি করতে পারেন:

    'urlManager' => [
        'enablePrettyUrl' => true,
        'showScriptName' => false,
        'rules' => [
            'product/<category:\w+>/<id:\d+>' => 'product/view',  // 'product/electronics/123' -> 'product/view'
        ],
    ],
    

    এখানে:

    • <category:\w+> প্যারামিটারটি কোনও শব্দ (letters, numbers, underscores) হিসেবে গ্রহণ করবে।
    • <id:\d+> প্যারামিটারটি শুধুমাত্র সংখ্যা গ্রহণ করবে।

২. Custom URL Rule ব্যবহার করা

Custom URL rules ব্যবহারের মাধ্যমে আপনি কিভাবে আপনার ওয়েব অ্যাপ্লিকেশনের URL সুন্দর এবং ব্যবহারকারী বান্ধব করতে পারেন, তার কিছু উদাহরণ:

১. কাস্টম অ্যাকশন সহ URL:

আপনি কাস্টম অ্যাকশন তৈরি করে সেগুলোর জন্য URL কাস্টমাইজ করতে পারেন। উদাহরণস্বরূপ:

'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false,
    'rules' => [
        'about-us' => 'site/about',  // 'about-us' URL 'site/about' অ্যাকশন কল করবে
    ],
],

২. Multi-level URL Rules:

একাধিক স্তরের URL রুলসও তৈরি করা যায়। যেমন:

'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false,
    'rules' => [
        'category/<slug:\w+>/post/<id:\d+>' => 'post/view', // 'category/tech/post/1' -> 'post/view' অ্যাকশন
    ],
],

এখানে:

  • <slug:\w+> প্যারামিটারটি URL-এ category নামের অংশটি গ্রহন করবে, যেমন tech, lifestyle, ইত্যাদি।
  • <id:\d+> প্যারামিটারটি id নামের অংশটি শুধুমাত্র সংখ্যা গ্রহণ করবে।

৩. Dynamic URL Rule (নির্দিষ্ট প্যারামিটার সহ)

কিছু ক্ষেত্রে, আপনি URL এ ডাইনামিক প্যারামিটার ব্যবহার করতে চাইতে পারেন। উদাহরণস্বরূপ, আপনি নির্দিষ্ট বছরের ব্লগ পোস্ট দেখানোর জন্য একটি URL তৈরি করতে পারেন:

'urlManager' => [
   'enablePrettyUrl' => true,
   'showScriptName' => false,
   'rules' => [
       'blog/<year:\d{4}>' => 'blog/index', // 'blog/2024' -> 'blog/index' অ্যাকশন
   ],
],

এখানে:

  • <year:\d{4}> প্যারামিটারটি URL থেকে ৪ ডিজিটের সংখ্যা গ্রহণ করবে, যেমন 2024, 2025, ইত্যাদি।

৪. URL Rule কাস্টমাইজেশন এবং Priorities

Yii 2 তে URL রুলসের priority (অগ্রাধিকার) নির্ধারণের মাধ্যমে আপনি রুলগুলির মধ্যে অগ্রাধিকার স্থাপন করতে পারেন। Yii রুলগুলিকে তাদের সিস্টেম অনুযায়ী ব্যবহার করে, তবে আপনি যদি কিছু রুলকে আগে চালাতে চান, তবে তার জন্য priority সেট করতে পারেন।

'urlManager' => [
   'enablePrettyUrl' => true,
   'showScriptName' => false,
   'rules' => [
       [
           'pattern' => 'news/<id:\d+>',
           'route' => 'news/view',
           'defaults' => ['id' => 1],
           'priority' => 1,
       ],
       'about' => 'site/about', // 'about' URL 'site/about' অ্যাকশন কল করবে
   ],
],

সারাংশ

Yii ফ্রেমওয়ার্কে Custom URL Rules তৈরি করার মাধ্যমে আপনি অ্যাপ্লিকেশনের URL স্ট্রাকচারকে আরও সুন্দর, পরিষ্কার এবং SEO-friendly করতে পারেন। আপনি URL রুলস ব্যবহার করে ডাইনামিক প্যারামিটার সহ URL তৈরি করতে পারবেন এবং অ্যাকশন এবং কন্ট্রোলারগুলির সাথে সেগুলিকে ম্যাপ করতে পারবেন। এই প্রক্রিয়াটি ওয়েব অ্যাপ্লিকেশনের ন্যাভিগেশন এবং ইউজার এক্সপেরিয়েন্স উন্নত করতে সাহায্য করে।

Content added By
Promotion

Are you sure to start over?

Loading...