Parameter in Routen in MVC in PHP

In der vorherigen Lektion hatten unsere Routen feste Adressen. Tatsächlich ist der Routing-Mechanismus komplexer - man kann es so einrichten, dass ein Teil der URI-Seite in benannten Parametern landet, die dann im Controller verfügbar sind.

Nehmen wir an, unsere Adressen sollen folgendermaßen aussehen: /test/param1/param2/, wo param1 und param2 beliebige Zeichenketten sind. Dabei wollen wir, dass Adressen dieses Typs von einer Controller-Aktion verarbeitet werden. Dazu sollte man sich einen Parameternamen ausdenken und davor einen Doppelpunkt setzen, wie hier:

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

In unserem Fall wird das dazu führen, dass alle Anfragen der Art /test/Parameter1/Parameter2/ auf die Aktion act treffen. Dabei wird in den ersten Parameter dieser Aktion ein assoziatives Array mit Parametern übergeben: Der Text, der an der Stelle des ersten Parameters steht, landet im Array-Element mit dem Schlüssel 'var1', und der Text des zweiten Parameters - in 'var2'.

Nehmen wir zum Beispiel an, in der Adresszeile wurde folgendes eingegeben: /test/eee/bbb/. Lassen Sie uns sehen, was der erste Parameter der Aktion enthalten wird:

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

Erstellen Sie den Controller NumController, und darin - die Aktion sum. Lassen Sie diese Aktion Adressen folgender Art verarbeiten: /nums/:n1/:n2/:n3/, wobei die Parameter bestimmte Zahlen sind. Sorgen Sie dafür, dass die Summe der übergebenen Zahlen auf dem Bildschirm ausgegeben wird.