এমভিসি-তে পিএইচপি-তে রাউটে প্যারামিটার

পূর্ববর্তী পাঠে, আমাদের রাউটগুলির ঠিকানা নির্দিষ্ট ছিল। আসলে রাউটিং মেকানিজম আরও জটিল - এটি করা সম্ভব যাতে পৃষ্ঠার URI-এর একটি অংশ নামযুক্ত প্যারামিটারে পড়ে, যা পরে কন্ট্রোলারে অ্যাক্সেসযোগ্য হয়।

ধরুন, উদাহরণস্বরূপ, আমাদের ঠিকানাগুলি এইরকম দেখাবে: /test/param1/param2/, যেখানে param1 এবং param2 হল যথেচ্ছ স্ট্রিং। একই সময়ে, আমরা চাই যে এই ধরনের ঠিকানা একটি কন্ট্রোলার অ্যাকশন দ্বারা প্রক্রিয়া করা হোক। এটি করার জন্য, একটি প্যারামিটার নাম নিয়ে আসতে হবে এবং এর আগে একটি কোলন রাখতে হবে, এভাবে:

/project/config/routes.php<?php
  use \Core\Route;
  
  return [
    new Route('/test/:var1/:var2/', 'page', 'act'),
  ];
?>

আমাদের ক্ষেত্রে, এটি হবে যে সকল রিকোয়েস্ট /test/প্যারামিটার1/প্যারামিটার2/ ধরনের act অ্যাকশনে যাবে। যখন এই অ্যাকশনের প্রথম প্যারামিটারে আসবে একটি অ্যাসোসিয়েটিভ অ্যারে প্যারামিটার সহ: প্রথম প্যারামিটারের জায়গায় যে টেক্সটটি থাকবে, তা 'var1' কী সহ অ্যারের এলিমেন্টে যাবে, এবং দ্বিতীয় প্যারামিটারের টেক্সট - 'var2'-তে যাবে।

ধরুন, উদাহরণস্বরূপ, অ্যাড্রেস বারে নিম্নলিখিতটি টাইপ করা হয়েছে: /test/eee/bbb/। আসুন দেখি, অ্যাকশনের প্রথম প্যারামিটারে কী থাকবে:

project/controllers/PageController.php<?php
  namespace Project\Controllers;
  use Core\Controller;
  
  class PageController extends Controller
  {
    public function act($params)
    {
      var_dump($params); // ['var1' => 'eee', 'var2' => 'bbb']
    }
  }
?>
Задание 1

NumController কন্ট্রোলারটি তৈরি করুন, এবং এতে - sum অ্যাকশনটি রাখুন। ধরুন এই অ্যাকশনটি নিম্নলিখিত ধরনের ঠিকানা প্রক্রিয়া করে: /nums/:n1/:n2/:n3/, যেখানে প্যারামিটারগুলি হবে কিছু সংখ্যা। এটি এমনভাবে তৈরি করুন যাতে স্ক্রিনে প্রেরিত সংখ্যাগুলির যোগফল প্রদর্শিত হয়।