⊗ppMVDFmDs 29 of 35 menu

Phát triển Dispatcher trong MVC framework của riêng bạn

Hãy nhớ lại nội dung hiện tại của tệp index.php:

<?php namespace Core; error_reporting(E_ALL); ini_set('display_errors', 'on'); spl_autoload_register(function($class) { // triển khai autoload của bạn }); $routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php'; $track = ( new Router ) -> getTrack($routes, $_SERVER['REQUEST_URI']); ?>

Như bạn có thể thấy, hiện tại router của chúng ta trả về đối tượng của lớp Track, chứa tên controller, tên action và các tham số từ chuỗi địa chỉ. Ngoài ra, trong bài học trước chúng ta đã tạo parent cho tất cả các controller.

Bây giờ chúng ta có thể thực hiện việc gọi phương thức của controller, dữ liệu của nó được chứa trong biến $track của chúng ta.

Việc này sẽ do một lớp đặc biệt Dispatcher đảm nhận. Dispatcher sẽ nhận đối tượng của lớp Track và theo dữ liệu của nó tạo ra đối tượng của lớp được chỉ định, gọi phương thức của lớp đó, truyền các tham số vào phương thức này.

Hãy thêm lệnh gọi dispatcher vào tệp index.php:

<?php namespace Core; error_reporting(E_ALL); ini_set('display_errors', 'on'); spl_autoload_register(function($class) { // triển khai autoload của bạn }); $routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php'; $track = ( new Router ) -> getTrack($routes, $_SERVER['REQUEST_URI']); // Lệnh gọi dispatcher: $page = ( new Dispatcher ) -> getPage($track); ?>

Việc gọi phương thức getPage của dispatcher chúng ta sẽ gọi phương thức render của controller và trả về những gì mà lệnh gọi phương thức đó trả về. Như bạn đã biết từ bài học trước, phương thức render của controller trả về đối tượng lớp Page.

Đây là bản phác thảo của lớp Dispatcher của chúng ta:

<?php namespace Core; class Dispatcher { public function getPage(Track $track) { ...code return controller -> render(parameters); } } ?>

Sử dụng bản phác thảo của tôi, hãy triển khai lớp Dispatcher đã được mô tả. Kiểm tra hoạt động của nó. Nếu gặp khó khăn, hãy xem mã nguồn trong các tệp của framework học tập do tôi tạo.

Tiếng Việt
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ʻzbek
Chúng tôi sử dụng cookie để vận hành trang web, phân tích và cá nhân hóa. Việc xử lý dữ liệu được thực hiện tuân theo Chính sách bảo mật.
chấp nhận tất cả tùy chỉnh từ chối