Parametere i ruter i MVC i PHP

I forrige leksjon hadde rutene våre faste adresser. Egentlig er rutemekanismen mer komplisert - det er mulig å gjøre det slik at en del av URI-en til siden havner i navngitte parametere, som deretter blir tilgjengelige i kontrolleren.

La oss for eksempel si at adressene våre skal se ut slik: /test/param1/param2/, hvor param1 og param2 er vilkårlige strenger. Samtidig ønsker vi at adresser av dette slaget skal håndteres av en enkelt kontrollerhandling. For å oppnå dette bør vi finne på et parameternavn og sette et kolon foran det, slik:

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

I vårt tilfelle vil det bety at alle forespørsler av typen /test/parameter1/parameter2/ vil havne på handlingen act. Samtidig vil den første parameteren til denne handlingen inneholde en assosiativ array med parameterne: teksten som står på plassen til den første parameteren, havner i array-elementet med nøkkelen 'var1', og teksten til den andre parameteren - i 'var2'.

La oss for eksempel si at følgende er skrevet i adresselinjen: /test/eee/bbb/. La oss se hva den første parameteren til handlingen vil inneholde:

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

Opprett kontrolleren NumController, og i den - handlingen sum. La denne handlingen håndtere adresser av følgende type: /nums/:n1/:n2/:n3/, hvor parameterne er noen tall. Gjør slik at summen av de overførte tallene vises på skjermen.