⊗ppMVDFmDs 29 of 35 menu

Pengembangan Dispatcher dalam Framework MVC Sendiri

Mari kita ingat kembali isi file index.php saat ini:

<?php namespace Core; error_reporting(E_ALL); ini_set('display_errors', 'on'); spl_autoload_register(function($class) { // implementasi autoloading Anda }); $routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php'; $track = ( new Router ) -> getTrack($routes, $_SERVER['REQUEST_URI']); ?>

Seperti yang Anda lihat, sejauh ini router kita mengembalikan objek kelas Track, yang berisi nama controller, nama action, dan parameter dari baris alamat. Selain itu, dalam pelajaran sebelumnya kita telah membuat induk dari semua controller.

Sekarang kita dapat membuat agar pemanggilan method controller terjadi, yang datanya terkandung dalam variabel $track kita.

Ini akan ditangani oleh kelas khusus Dispatcher. Dispatcher akan menerima objek kelas Track dan berdasarkan datanya membuat objek dari kelas yang ditentukan, memanggil method kelas tersebut, dan meneruskan parameter ke method tersebut.

Mari tambahkan pemanggilan dispatcher ke file index.php:

<?php namespace Core; error_reporting(E_ALL); ini_set('display_errors', 'on'); spl_autoload_register(function($class) { // implementasi autoloading Anda }); $routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php'; $track = ( new Router ) -> getTrack($routes, $_SERVER['REQUEST_URI']); // Pemanggilan dispatcher: $page = ( new Dispatcher ) -> getPage($track); ?>

Pemanggilan method getPage dispatcher kita akan memanggil method render controller dan mengembalikan apa yang dikembalikan oleh pemanggilan method tersebut. Seperti yang sudah Anda ketahui dari pelajaran sebelumnya, method render controller mengembalikan objek kelas Page.

Berikut adalah kerangka kelas Dispatcher kita:

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

Gunakan kerangka saya untuk mengimplementasikan kelas Dispatcher yang dijelaskan. Periksa cara kerjanya. Jika mengalami kesulitan, lihat kode sumber di file framework pembelajaran yang telah saya buat.

Indonesia
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan cookie untuk operasi situs, analitik, dan personalisasi. Pemrosesan data dilakukan sesuai dengan Kebijakan Privasi.
terima semua atur tolak