⊗ppMVDFmCn 28 of 35 menu

Kontrolleri savā PHP MVC ietvarā

Kā jūs jau zināt, visi mūsu ietvara kontrolleri ir ar metodi render, kuru vajag izsaukt, lai nosūtītu datus uz skatu. Šo metodi mūsu, lietotāju kontrolleri manto no vecāku klases Controller, kas atrodas kodolā. Izveidosim šo klasi:

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

Kā jūs redzat, metode render ar parametru pieņem skata nosaukumu un datus attēlošanai. Lai šī metode atgriež objektu speciālās klases Page, kurā būs informācija par skata datu attēlošanu kontrollera darbībā. Šajā klasē būs skata nosaukums, dati, kā arī lapas virsraksts un faila nosaukums ar vietnes izkārtojumu:

<?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; } } ?>

Tad mūsu metodes render kods izskatīsies šādi:

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

Paskaidrošu, kas šeit notiek. Skata nosaukums un dati nāk kā metodes parametri. Tomēr, lietotāja kontrolerī tiek iestatīts vēl un lapas virsraksts - ierakstot īpašību title. Tātad, $this->title būs virsraksts, ko mēs nodosim klases Page konstruktoram.

Ir arī nianses ar izkārtojumu. Kā jūs zināt, mūsu ietvars izmanto izkārtojumu no faila default.php. Patiesībā, katra darbība var izmantot arī citu izkārtojumu. Lai to izdarītu, pašā darbībā īpašībā layout jāieraksta cits izkārtojuma nosaukums.

Kā tas tiek panākts: mūsu vecāku kontroleris ir ar īpašību layout, pēc noklusējuma ar vērtību 'default.php'. Tas būs noklusētais izkārtojums. Tomēr, ja lietotāja kontrollera darbība pārdefinēs īpašības layout vērtību, tad arī izkārtojums būs cits.

Nokopējiet mana klases Controller kodu un ievietojiet to failā /core/Controller.php.

Nokopējiet mana klases Page kodu un ievietojiet to failā /core/Page.php.

Latviešu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt