Parametri v rutah v MVC v PHP

V prejšnji lekciji so imele naše route fiksne naslove. Pravzaprav je mehanizem usmerjanja bolj zapleten - mogoče je narediti tako, da del URI-ja strani pade v imenovane parametre, ki so nato dostopni v krmilniku.

Recimo, da bi naši naslovi izgledali tako: /test/param1/param2/, kjer sta param1 in param2 poljubni nizi. Želimo, da naslove te vrste obravnava eno dejanje krmilnika. Za to je treba zamisliti ime parametra in pred njim postaviti dvopičje, takole:

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

V našem primeru bo to pomenilo, da bodo vsa povpraševja oblike /test/parameter1/parameter2/ prišla na dejanje act. Pri tem bo v prvi parameter tega dejanja prišel asociativni niz s parametri: besedilo, ki bo na mestu prvega parametra, bo prišlo v element matrike s ključem 'var1', besedilo drugega parametra pa v 'var2'.

Recimo, da je v naslovni vrstici vpisano naslednje: /test/eee/bbb/. Poglejmo, kaj bo vseboval prvi parameter dejanja:

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

Naredite krmilnik NumController, in v njem - dejanje sum. Naj to dejanje obravnava naslove naslednje oblike: /nums/:n1/:n2/:n3/, kjer bodo parametri določene številke. Naredite tako, da se na zaslon izpiše vsota podanih števil.