პარამეტრები მარშრუტებში MVC-ში PHP-ში

წინა გაკვეთილში ჩვენი მარშრუტები ფიქსირებულ მისამართებს ჰქონდათ. სინამდვილეში მარშრუტიზაციის მექანიზმი უფრო რთულია - შესაძლებელია ისე მოვიქცეთ, რომ გვერდის 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/, სადაც პარამეტრები იქნება გარკვეული რიცხვები. გააკეთეთ ისე, რომ ეკრანზე გამოიტანოს გადაცემული რიცხვების ჯამი.