⊗ppMVDFmCn 28 of 35 menu

Kontrollorët në MVC framework-in e tyre në PHP

Siç e dini tashmë, të gjithë kontrollorët e framework-it tonë kanë metodën render, e cila duhet thirrur për të dërguar të dhënat në pamje. Këtë metodë kontrollorët tanë, të përdoruesve, e trashëgojnë nga klasa prind Controller, e vendosur në bërthamë. Le ta bëjmë këtë klasë:

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

Siç e shihni, metoda render si parametër pranon emrin e pamjes dhe të dhënat për shfaqje. Le të kthejë kjo metodë një objekt të klasës speciale Page, në të cilin do të përmbahet informacioni për pamjen e të dhënave të veprimit të kontrollorit. Në këtë klasë do të përmbahet emri i pamjes, të dhënat, si dhe titulli i faqes dhe emri i skedarit me layout-in e sajtit:

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

Atëherë kodi i metodës sonë render do të duket kështu:

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

Po e shpjegoj se çfarë po ndodh këtu. Emri i pamjes dhe të dhënat vijnë si parametra të metodës. Megjithatë, në kontrollorin e përdoruesit vendoset edhe titulli i faqes - duke e shkruar vetinë title. Do të thotë, në $this->title do të përmbahet titulli, të cilin do ta kalojmë konstruktorit të klasës Page.

Ka edhe nuanca me layout-in. Siç e dini, framework-i ynë përdor layout nga skedari default.php. Në fakt, çdo veprim mund të ketë edhe një layout tjetër. Për këtë duhet në vetë veprimin në vetinë layout të shkruhet një emër tjetër layout-i.

Si arrihet kjo: kontrollori ynë prind ka vetinë layout, si parazgjedhje që ka vlerën 'default.php'. Ky do të jetë layout-i si parazgjedhje. Megjithatë, nëse veprimi i kontrollorit të përdoruesit e ridefinon vlerën e vetisë layout, atëherë edhe layout-i do të jetë tjetër.

Kopjoni kodin e klasës time Controller dhe vendoseni në skedarin /core/Controller.php.

Kopjoni kodin e klasës time Page dhe vendoseni në skedarin /core/Page.php.

Shqip
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ne përdorim cookie për funksionimin e sajtit, analizën dhe personalizimin. Përpunimi i të dhënave bëhet në përputhje me Politikën e Privatësisë.
prano të gjitha konfiguro refuzo