⊗ppMVDFmCn 28 of 35 menu

Pengawal dalam Kerangka MVC Sendiri di PHP

Seperti yang anda sudah tahu, semua pengawal dalam kerangka kerja kami mempunyai kaedah render yang perlu dipanggil untuk menghantar data ke pandangan. Kaedah ini diwarisi oleh pengawal-pengawal pengguna kami dari kelas induk Controller, yang terletak dalam teras. Mari kita buat kelas ini:

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

Seperti yang anda lihat, kaedah render menerima nama pandangan dan data untuk paparan sebagai parameter. Biarkan kaedah ini mengembalikan objek kelas khas Page, di mana maklumat tentang paparan data tindakan pengawal akan terkandung. Kelas ini akan mengandungi nama pandangan, data, serta tajuk halaman dan nama fail dengan susun atur tapak web:

<?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 kod untuk kaedah render kami akan kelihatan seperti ini:

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

Biar saya jelaskan apa yang berlaku di sini. Nama pandangan dan data diterima sebagai parameter kaedah. Walau bagaimanapun, tajuk halaman juga ditetapkan dalam pengawal pengguna - dengan menulis nilai kepada sifat title. Ini bermakna, $this->title akan mengandungi tajuk yang kita hantar kepada pembina kelas Page.

Terdapat juga nuansa dengan susun atur. Seperti yang anda tahu, kerangka kerja kami menggunakan susun atur dari fail default.php. Sebenarnya, setiap tindakan boleh mempunyai susun atur yang lain. Untuk melakukannya, anda perlu menulis nama susun atur lain ke dalam sifat layout dalam tindakan itu sendiri.

Bagaimana ini dicapai: pengawal induk kami mempunyai sifat layout, yang secara lalai mempunyai nilai 'default.php'. Ini akan menjadi susun atur lalai. Walau bagaimanapun, jika tindakan pengawal pengguna mengubah nilai sifat layout, maka susun atur juga akan berbeza.

Salin kod kelas Controller saya dan letakkannya dalam fail /core/Controller.php.

Salin kod kelas Page saya dan letakkannya dalam fail /core/Page.php.

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