MVC'de PHP'de Rotalarda Parametreler

Önceki derste rotalarımız sabit adreslere sahipti. Aslında yönlendirme mekanizması daha karmaşıktır - URI'nin bir kısmının, daha sonra denetleyicide erişilebilen adlandırılmış parametrelere düşmesi sağlanabilir.

Örneğin, adreslerimizin şu şekilde görünmesini isteyelim: /test/param1/param2/, burada param1 ve param2 - rastgele dizelerdir. Aynı zamanda, bu tür adreslerin tek bir kontrolör eylemi tarafından işlenmesini istiyoruz. Bunun için bir parametre adı bulmalı ve önüne iki nokta üst üste koymalısınız, işte şöyle:

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

Bizim durumumuzda, /test/parametre1/parametre2/ şeklindeki tüm istekler act eylemine yönlendirilecektir. Bu durumda, bu eylemin ilk parametresine parametrelerle birlikte bir ilişkisel dizi gelecektir: ilk parametrenin yerinde olan metin, 'var1' anahtarlı dizi öğesine, ve ikinci parametrenin metni - 'var2' anahtarlı dizi öğesine düşecektir.

Örneğin, adres çubuğuna şu yazılmış olsun: /test/eee/bbb/. Haydi, eylemin ilk parametresinde ne olacağına bir bakalım:

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 kontrolörünü ve içinde sum eylemini yapın. Bu eylemin şu türdeki adresleri işlemesini sağlayın: /nums/:n1/:n2/:n3/, burada parametreler bazı sayılar olacaktır. Ekrana iletilen sayıların toplamının çıkmasını sağlayın.