PHP-daky MVC-da marşrullaryň parametrlerini ulanyş

Görkezileni has ýaşaýyş mysalynda ulanmagy serediň. Bizim PageController kontrolçimiziň sahypalar sanawy bardyr diýeliň (bu maglumatlar model tarapyndan berilmeli, ýöne biz heniz modeller bilen işlemediğimiz üçin, häzirçe bu maglumatlar diňe kontrolçide saklansyn):

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',
      ];
    }
  }
?>

Belläni bir belgili nomerli (id) sahypany ekrana çykarýan show hereketini düzeliň:

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()
    {
      // bu ýerde belli bir nomerli sahypany çykaryarys
    }
  }
?>

/page/1/ adresine ýüzlenilende birinji sahypanyň teksti, /page/2/ adresine ýüzlenilende ikinji sahypanyň teksti we şuňa meňzeş çyksyn diýeliň. Degişli marşruty düzeliň:

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

Görkezilen show usulyny amala aşyryň:

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'] ]; // nomer boýunça sahypany çykaryarys
    }
  }
?>
Задание 1

Aşakdaky sanawy öz içine alýan UserController kontrolçisini amala aşyryň:

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

UserController kontrolçisinde, belli bir id boýunça ulanyjyny çykarýan show hereketini düzüň. Onuň aşakdaky görnüşli adrese elýeterli bolmagyny üpjün ediň: /user/:id/.

Задание 3

UserController kontrolçisinde, kesgitlenen ulanyjynyň adyny ýa-da ýaşyny çykarýan info hereketini düzüň. Bu hereketiň aşakdaky görnüşli adrese elýeterli bolmagyny üpjün ediň: /user/:id/:key/, bu ýerde key 'name', 'age' ýa-da 'salary' görnüşinde baha alyar.

Задание 4

UserController kontrolçisinde, ähli ulanyjylaryň sanawyny ekrana çykarýan all hereketini düzüň. Bu hereketiň aşakdaky görnüşli adrese elýeterli bolmagyny üpjün ediň: /user/all/ (bu ýerde hiç hili parametrler bolmaz).

Задание 5

UserController kontrolçisinde, ilkinji N sany ulanyjynyň sanawyny ekrana çykarýan first hereketini düzüň. Bu hereketiň aşakdaky görnüşli adrese elýeterli bolmagyny üpjün ediň: /user/first/:n/, bu ýerde parametrde ekrana çykarylmaly ulanyjylaryň sany berler.