⊗ppMVDFmCn 28 of 35 menu

PHP-də öz MVC freymvorkunda Kontrollerlər

Artıq bildiyiniz kimi, freymvorkumuzun bütün kontrollerləri məlumatları təsvirə göndərmək üçün çağırılmalı olan render metoduna malikdir. Bu metod bizim, istifadəçi kontrollerləri tərəfindən nüvədə yerləşən Controller valideyn klassından miras alınır. Gəlin bu klassı edək:

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

Gördüyünüz kimi, render metodu parametr kimi təsvirin adını və göstəriləcək məlumatları qəbul edir. Qoy bu metod, kontroller əməliyyatının məlumatlarının təsviri haqqında məlumatın olacağı xüsusi Page klassının obyektini qaytarsın. Bu klassda təsvirin adı, məlumatlar, həmçinin səhifənin başlığı və saytın layout faylının adı olacaq:

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

O zaman bizim render metodumuzun kodu bax belə görünəcək:

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

Bura nə baş verdiyini izah edim. Təsvirin adı və məlumatlar metodun parametrləri ilə gəlir. Lakin, istifadəçi kontrollerində həmçinin səhifənin başlığı təyin olunur - title xassəsinə yazılmaqla Deməli, $this->title-də Page klassının konstruktoruna ötürəcəyimiz başlıq olacaq.

Layout ilə də nüanslar var. Bildiyiniz kimi, bizim freymvorkumuz default.php faylından olan layout-dan istifadə edir. Əslində, hər bir əməliyyatın başqa layout-u ola bilər. Bunun üçün əməliyyatın özündə layout xassəsinə başqa bir layout adı yazılmalıdır.

Bu necə əldə olunur: bizim valideyn kontroller layout xassəsinə malikdir, standart olaraq 'default.php' dəyərinə malikdir. Bu standart layout olacaq. Lakin, əgər istifadəçi kontrollerinin əməliyyatı layout xassəsinin dəyərini dəyişsə, onda layout da başqa olacaq.

Mənim Controller klassımın kodunu köçürün və onu /core/Controller.php faylına yerləşdirin.

Mənim Page klassımın kodunu köçürün və onu /core/Page.php faylına yerləşdirin.

Azərbaycan
AfrikaansБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Biz saytin işi, analitika və fərdiləşdirmə üçün cookie istifadə edirik. Məlumatların emalı Məxfilik Siyasəti əsasında həyata keçirilir.
hamısını qəbul et konfiqurasiya et rədd et