⊗ppMVDFmCn 28 of 35 menu

PHP-däki öz MVC çärjegiňizde kontrolerler

Bilşiňiz ýaly, çärjegiňiziň ähli kontrolerleriniň render metody bar, bu metoda görkezmäni işledip üýtgetmek üçin çagyrmaly. Bu metod bizimi, ulanyjy kontrolerlerimiz, özekde ýerleşýän kakasy Controller klasydan miras alýar. Geliň bu klasy dörediň:

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

Görşüňiz ýaly, render metodu görkezme adyny we görkezmek üçin maglumatlary parametr hökmünde alýar. Bu metod görkezme we kontroleriň hereketi barada maglumatlary saklaýan aýratyn Page klasynyň obyektini yzyna gaýtarsyn. Bu klasda görkezme ady, maglumatlar, şeýle hem sahypanyň taýtly we saýtyň maýat faýlynyň ady bolmaly:

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

Şonda bizimi render metodymyzyň kody şeýle görüner:

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

Bu ýerde näme bolýandygyny düşündirýärin. Görkezme ady we maglumatlar metoda parametrler hökmünde gelýär. Şonda-da, ulanyjy kontrolerinde sahypa taýtly hem kesgitlenýär - title hassaýaty ýazylmagy arkaly. Demek, Page klasynyň konstruktoruna geçirjek taýtly $this->title içinde bolar.

Maýat bilen hem çylşyrymlar bar. Bilşiňiz ýaly, bizimi çärjegiňiz default.php faýlyndan gelen maýaty ulanyýar. Aslynda, her hereket başga maýata hem eýe bolup biler. Bunuň üçin hereketiň özünde layout hassaýatyna başga maýat adyny ýazmaly.

Bu nädip gazanylýar: bizimi kakasy kontroleriňiz layout hassaýaty bar, deslapky bahasy 'default.php'. Bu deslapky maýat bolar. Şonda-da, eger ulanyjy kontroleriniň hereketi layout hassaýatynyň bahasyny üýtgetse, maýat hem başga bolar.

Meniň Controller klasymyň kodyny göçürip alyň we ony /core/Controller.php faýlyna ýerleşdiriň.

Meniň Page klasymyň kodyny göçürip alyň we ony /core/Page.php faýlyna ýerleşdiriň.

Türkmen
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkçeЎзбекOʻzbekTiếng Việt
Biz sahypanyň işlemegi, analitika we şahsyýetleşdirmek üçin cookie ulanýarys. Maglumatlaryň işlenişi Gizlinlik syýasaty boýunça amala aşyrylýar.
hemmesini kabul et sazlamak ret et