Përdorimi i parametrave në rrugët në MVC në PHP

Le të shohim zbatimin e të përshkruarit në një shembull më jetësor. Le të supozojmë se kontrolluesi ynë PageController përmban një grup faqesh (këto të dhëna duhet t'i kthejë modeli, por me modelet ende nuk jemi marrë, kështu që le të dhënat të ruhen për momentin thjesht në kontrollues):

project/controllers/PageController.php<?php
  namespace Project\Controllers;
  use Core\Controller;
  
  class PageController extends Controller
  {
    private $pages;
    
    public function __construct()
    {
      $this->pages = [
        1 => 'page 1',
        2 => 'page 2',
        3 => 'page 3',
      ];
    }
  }
?>

Le të krijojmë një veprim show, i cili do të shfaqë në ekran një faqe me një numër të caktuar (id):

project/controllers/PageController.php<?php
  namespace Project\Controllers;
  use Core\Controller;
  
  class PageController extends Controller
  {
    private $pages;
    
    public function __construct()
    {
      $this->pages = [
        1 => 'page 1',
        2 => 'page 2',
        3 => 'page 3',
      ];
    }
    
    public function show()
    {
      // këtu do të shfaqim faqen me numrin e caktuar
    }
  }
?>

Le të themi se kur i drejtohemi adresës /page/1/ të shfaqet teksti i faqes së parë, kur i drejtohemi adresës /page/2/ - teksti i faqes së dytë e kështu me radhë. Le të krijojmë rrugën përkatëse:

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

Le të implementojmë metodën e përshkruar show:

project/controllers/PageController.php<?php
  namespace Project\Controllers;
  use Core\Controller;
  
  class PageController extends Controller
  {
    private $pages;
    
    public function __construct()
    {
      $this->pages = [
        1 => 'page 1',
        2 => 'page 2',
        3 => 'page 3',
      ];
    }
    
    public function show($params)
    {
      echo $this->pages[ $params['id'] ]; // shfaqim faqen sipas numrit
    }
  }
?>
Задание 1

Implementoni kontrolluesin UserController, që përmban grupin e mëposhtëm:

php<?php
  $this->users = [
    1 => ['name'=>'user1', 'age'=>'23', 'salary' => 1000],
    2 => ['name'=>'user2', 'age'=>'24', 'salary' => 2000],
    3 => ['name'=>'user3', 'age'=>'25', 'salary' => 3000],
    4 => ['name'=>'user4', 'age'=>'26', 'salary' => 4000],
    5 => ['name'=>'user5', 'age'=>'27', 'salary' => 5000],
  ];
?>
Задание 2

Në kontrolluesin UserController, bëni veprimin show, i cili do të shfaqë përdoruesin sipas një id të caktuar. Le të jetë i arritshëm në adresën e formës së mëposhtme: /user/:id/.

Задание 3

Në kontrolluesin UserController, bëni veprimin info, i cili do të shfaqë emrin ose moshën e përdoruesit të caktuar. Le të jetë ky veprim i arritshëm në adresën e formës së mëposhtme: /user/:id/:key/, ku key do të ketë vlerën 'name', 'age' ose 'salary'.

Задание 4

Në kontrolluesin UserController, bëni veprimin all, i cili do të shfaqë listën e të gjithë përdoruesve në ekran. Le të jetë ky veprim i arritshëm në adresën e formës së mëposhtme: /user/all/ (këtu nuk do të ketë asnjë parametër).

Задание 5

Në kontrolluesin UserController, bëni veprimin first, i cili do të shfaqë listën e N përdoruesve të parë në ekran. Le të jetë ky veprim i arritshëm në adresën e formës së mëposhtme: /user/first/:n/, ku në parametër do të jetë numri i përdoruesve që duhet të shfaqen në ekran.