พารามิเตอร์ในเส้นทางใน MVC ใน PHP

ในบทเรียนที่แล้ว เส้นทางของเรามีที่อยู่ ตายตัว ในความเป็นจริงกลไกการกำหนดเส้นทางนั้น ซับซ้อนกว่านี้ - สามารถทำได้ให้ส่วนหนึ่งของ URI ของหน้าตกไปอยู่ในพารามิเตอร์ที่มีชื่อ, ซึ่งสามารถเข้าถึงได้ในคอนโทรลเลอร์ต่อไป

สมมติว่า ที่อยู่ของเราจะมีลักษณะ แบบนี้: /test/param1/param2/, โดยที่ param1 และ param2 เป็นสตริง ใดๆ ในขณะเดียวกันเราต้องการให้ที่อยู่รูปแบบนี้ ถูกประมวลผลโดยหนึ่งการกระทำของคอนโทรลเลอร์ สำหรับสิ่งนี้ควรคิดชื่อพารามิเตอร์ขึ้นมา และวางเครื่องหมายโคลอนข้างหน้า แบบนี้:

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

ในกรณีของเราจะได้ผลลัพธ์ว่า คำขอทั้งหมด รูปแบบ /test/พารามิเตอร์1/พารามิเตอร์2/ จะตกไปยังการกระทำ act ในขณะ เดียวกันในพารามิเตอร์แรกของการกระทำนี้จะ ตกไปเป็นอาเรย์เชื่อมโยงกับพารามิเตอร์: ข้อความ ที่จะอยู่แทนที่พารามิเตอร์แรก, จะตกไปในองค์ประกอบอาเรย์ที่มีคีย์ 'var1', และข้อความของพารามิเตอร์ที่สอง - ไปที่ 'var2'

สมมติว่า ในแถบที่อยู่พิมพ์ ดังต่อไปนี้: /test/eee/bbb/ มาดูกัน ว่าพารามิเตอร์แรกของการกระทำ จะมีอะไรบ้าง:

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, และในนั้น - การกระทำ sum ให้การกระทำนี้ ประมวลผลที่อยู่ในรูปแบบต่อไปนี้: /nums/:n1/:n2/:n3/, โดยที่พารามิเตอร์ จะเป็นตัวเลขบางจำนวน จัดการให้ บนหน้าจอแสดงผลรวมของตัวเลขที่ส่งมา