⊗ppMVDFmDs 29 of 35 menu

การพัฒนาตัวจัดการใน MVC framework ของเราเอง

จำเนื้อหาปัจจุบันของไฟล์ index.php:

<?php namespace Core; error_reporting(E_ALL); ini_set('display_errors', 'on'); spl_autoload_register(function($class) { // การใช้งาน autoload ของคุณ }); $routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php'; $track = ( new Router ) -> getTrack($routes, $_SERVER['REQUEST_URI']); ?>

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

ตอนนี้เราสามารถทำให้เกิด การเรียกใช้เมธอดของคอนโทรลเลอร์ได้ ซึ่งข้อมูล ที่อยู่ภายในตัวแปร $track ของเรา

สิ่งนี้จะถูกดูแลโดยคลาสพิเศษ Dispatcher ตัวจัดการจะได้รับอ็อบเจ็กต์คลาส Track และจากข้อมูลนั้นจะสร้างอ็อบเจ็กต์ของคลาสที่ระบุ เรียกเมธอดของคลาสนั้น โดยส่ง พารามิเตอร์เข้าไปในเมธอดนั้น

มาเพิ่มการเรียกใช้ตัวจัดการในไฟล์ index.php กัน:

<?php namespace Core; error_reporting(E_ALL); ini_set('display_errors', 'on'); spl_autoload_register(function($class) { // การใช้งาน autoload ของคุณ }); $routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php'; $track = ( new Router ) -> getTrack($routes, $_SERVER['REQUEST_URI']); // การเรียกใช้ตัวจัดการ: $page = ( new Dispatcher ) -> getPage($track); ?>

การเรียกเมธอด getPage ของตัวจัดการของเรา จะเรียกเมธอด render ของคอนโทรลเลอร์ และส่งคืนค่าที่ได้จากการเรียกเมธอดนั้น ดังที่คุณทราบจากบทเรียนที่แล้ว เมธอด render ของคอนโทรลเลอร์จะส่งคืนอ็อบเจ็กต์ คลาส Page

นี่คือโครงร่างของคลาส Dispatcher ของเรา:

<?php namespace Core; class Dispatcher { public function getPage(Track $track) { ...โค้ด return คอนโทรลเลอร์ -> render(พารามิเตอร์); } } ?>

ใช้โครงร่างของฉัน จัดทำคลาส Dispatcher ตามที่อธิบายไว้ ทดสอบการทำงานของมัน หากมีปัญหา ลองดูซอร์สโค้ด ในไฟล์ของ framework การเรียนการสอนที่ฉันทำเสร็จแล้ว

ไทย
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣTürkmenTürkçeЎзбекOʻzbekTiếng Việt
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ