⊗ppMVDFmCn 28 of 35 menu

Controller dalam Framework MVC Sendiri di PHP

Seperti yang sudah Anda ketahui, semua controller dalam framework kita memiliki metode render, yang perlu dipanggil untuk mengirim data ke view. Metode ini diwariskan oleh controller pengguna kita dari kelas induk Controller, yang berada di dalam inti. Mari kita buat kelas ini:

<?php namespace Core; class Controller { protected function render($view, $data) { } } ?>

Seperti yang Anda lihat, metode render menerima nama view dan data untuk ditampilkan sebagai parameternya. Biarkan metode ini mengembalikan objek dari kelas khusus Page, di dalamnya akan berisi informasi tentang tampilan data dari aksi controller. Di kelas ini akan berisi nama view, data, serta judul halaman dan nama file layout situs:

<?php namespace Core; class Page { private $layout; private $title; private $view; private $data; public function __construct($layout, $title, $view, $data) { $this->layout = $layout; $this->title = $title; $this->view = $view; $this->data = $data; } public function __get($property) { return $this->$property; } } ?>

Maka kode dari metode render kita akan terlihat seperti ini:

<?php namespace Core; class Controller { protected $layout = 'default'; protected function render($view, $data) { return new Page($this->layout, $this->title, $view, $data); } } ?>

Saya jelaskan, apa yang terjadi di sini. Nama view dan data datang sebagai parameter metode. Namun, di controller pengguna juga ditetapkan judul halaman - dengan menulis properti title. Artinya, di $this->title akan berisi judul, yang akan kita teruskan ke konstruktor kelas Page.

Ada juga nuansa dengan layout. Seperti yang Anda ketahui, framework kita menggunakan layout dari file default.php. Sebenarnya, setiap aksi dapat memiliki layout yang berbeda. Untuk itu, perlu dalam aksi itu sendiri di properti layout menuliskan nama layout yang lain.

Bagaimana ini dicapai: controller induk kita memiliki properti layout, secara default bernilai 'default.php'. Ini akan menjadi layout default. Namun, jika aksi controller pengguna menggantikan nilai properti layout, maka layout-nya akan menjadi berbeda.

Salin kode kelas Controller saya dan tempatkan di file /core/Controller.php.

Salin kode kelas Page saya dan tempatkan di file /core/Page.php.

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