MVC හි PHP හි රූට් වල පරාමිතීන් යෙදීම

විස්තර කර ඇති දේ යෙදීම වඩාත් ජීවන ප්‍රයෝගික උදාහරණයකින් බලමු. අපගේ පාලක PageController හි පිටු අරාවක් අඩංගු වේවා (මෙම දත්ත මාදිලියෙන් ලබා දිය යුතුය, නමුත් අපි තවමත් මාදිලි සමඟ වැඩ කර නැත, එබැවින් දත්ත දැනට පාලකයේ ගබඩා කර ඇති ආකාරයට තබමු):

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

show ක්‍රියාව කරමු, එය නිශ්චිත අංකයක් සහිත පිටුවක් ප්‍රදර්ශනය කරයි (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()
    {
      // මෙහිදී අපි නිශ්චිත අංකයකින් පිටුව ප්‍රදර්ශනය කරමු
    }
  }
?>

/page/1/ ලිපිනය වෙත පිවිසෙන විට පළමු පිටුවේ පෙළ ප්‍රදර්ශනය වේවා, /page/2/ ලිපිනය වෙත පිවිසෙන විට - දෙවන පිටුවේ පෙළ සහ එලෙසම. අපි අදාළ රූට් එක සාදමු:

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

විස්තර කර ඇති 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'] ]; // අංකය අනුව පිටුව ප්‍රදර්ශනය කරන්න
    }
  }
?>
Задание 1

UserController පාලකය ක්‍රියාත්මක කරන්න, පහත දක්වන අරාව අඩංගු වේ:

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 පාලකයේ, show ක්‍රියාව කරන්න, එය ප්‍රදර්ශනය කරයි නිශ්චිත id අනුව පරිශීලකයා. එය පහත ආකාරයේ ලිපිනයකින් ප්‍රවේශ විය හැකි වේවා: /user/:id/.

Задание 3

UserController පාලකයේ, info ක්‍රියාව කරන්න, එය ප්‍රදර්ශනය කරයි දෙන ලද පරිශීලකයාගේ නම හෝ වයස. මෙම ක්‍රියාව පහත ආකාරයේ ලිපිනයකින් ප්‍රවේශ විය හැකි වේවා: /user/:id/:key/, මෙහි key හට අගය 'name', 'age' හෝ 'salary' වේ.

Задание 4

UserController පාලකයේ, all ක්‍රියාව කරන්න, එය ප්‍රදර්ශනය කරයි සියලුම පරිශීලකයින්ගේ ලැයිස්තුව ප්‍රදර්ශන පුවරුවේ. මෙම ක්‍රියාව පහත ආකාරයේ ලිපිනයකින් ප්‍රවේශ විය හැකි වේවා: /user/all/ (මෙහි පරාමිතීන් නොමැත).

Задание 5

UserController පාලකයේ, first ක්‍රියාව කරන්න, එය ප්‍රදර්ශනය කරයි පළමු N පරිශීලකයින්ගේ ලැයිස්තුව ප්‍රදර්ශන පුවරුවේ. මෙම ක්‍රියාව පහත ආකාරයේ ලිපිනයකින් ප්‍රවේශ විය හැකි වේවා: /user/first/:n/, මෙහි පරාමිතියෙහි පරිශීලකයින් ගණන පවතී, ප්‍රදර්ශන පුවරුවේ ප්‍රදර්ශනය කළ යුතුය.