MVC da PHP da Routlarda Parametrlar

Oldingi darsda bizning routlarimiz belgilangan manzillarga ega edi. Aslida routlash mexanizmi ancha murakkab - URI ning bir qismi nomlangan parametrlar shaklida bo'lishi va keyin kontrollerda foydalanish mumkin.

Masalan, bizning manzillarimiz quyidagicha ko'rinishga ega bo'lsin: /test/param1/param2/, bu yerda param1 va param2 - ixtiyoriy matnlar. Bunda biz shunday ko'rinishdagi manzillar bitta kontroller harakati tomonidan boshqarilishini xohlaymiz. Buning uchun parametr nomini topish kerak va uning oldiga ikkita nuqta qo'yish kerak, mana shunday:

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

Bizning holatda shunday bo'ladi, ya'ni /test/parametr1/parametr2/ ko'rinishidagi barcha so'rovlar act harakatiga yo'naltiriladi. Bunda ushbu harakatning birinchi parametriga parametrlar bilan assotsiativ massiv kiradi: birinchi parametr o'rnida bo'lgan matn, massivning 'var1' kalitli elementiga kiradi, ikkinchi parametr matni esa 'var2' ga kiradi.

Masalan, manzil satrida quyidagi kiritilgan bo'lsin: /test/eee/bbb/. Keling harakatning birinchi parametrida nima bo'lishini ko'rib chiqaylik:

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 kontrollerini yarating, unda - sum harakatini yarating. Ushbu harakat quyidagi ko'rinishdagi manzillarni boshqarsin: /nums/:n1/:n2/:n3/, bu yerda parametrlar ba'zi sonlar bo'lsin. Ekranda uzatilgan sonlar yig'indisi chiqarilishi uchun sozlang.