Параметри во рутите во 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/, каде параметрите ќе бидат одредени броеви. Направете така што на екран ќе се испечати збир на передадените броеви.