⊗ppMVDFmCn 28 of 35 menu

Կոնտրոլերները ձեր սեփական MVC ֆրեյմվորկում PHP-ում

Ինչպես արդեն գիտեք, մեր ֆրեյմվորկի բոլոր կոնտրոլերներն ունեն render մեթոդը, որն անհրաժեշտ է կանչել տվյալները ներկայացմանը ուղարկելու համար: Այս մեթոդը մեր, օգտագործողի կոնտրոլերները ժառանգում են ծնողական Controller դասից, որը տեղակայված է միջուկում: Եկեք ստեղծենք այս դասը:

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

Ինչպես տեսնում եք, render մեթոդը պարամետրով ընդունում է ներկայացման անունը և տվյալները ցուցադրման համար: Թող այս մեթոդը վերադարձնի հատուկ Page դասի օբյեկտ, որի մեջ կպարունակվի կոնտրոլերի գործողության տվյալների ներկայացման մասին տեղեկատվությունը: Այս դասում կպարունակվի ներկայացման անունը, տվյալները, ինչպես նաև էջի վերնագիրը և կայքի դասավորության ֆայլի անունը:

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

Այդ դեպքում մեր render մեթոդի կոդը կունենա հետևյալ տեսքը:

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

Պարզաբանեմ, թե ինչ է տեղի ունենում այստեղ: Ներկայացման անունը և տվյալները գալիս են մեթոդի պարամետրերով: Սակայն, օգտագործողի կոնտրոլերում նշվում է նաև էջի վերնագիրը` գրվելով title հատկության մեջ: Սա նշանակում է, որ $this->title-ի մեջ կպարունակվի այն վերնագիրը, որը մենք կփոխանցենք Page դասի կոնստրուկտորին:

Կան նաև նրբություններ դասավորության հետ: Ինչպես գիտեք, մեր ֆրեյմվորկը օգտագործում է դասավորություն default.php ֆայլից: Իրականում, յուրաքանչյուր գործողություն կարող է ունենալ նաև այլ դասավորություն: Դրա համար անհրաժեշտ է հենց գործողության մեջ layout հատկության մեջ գրել դասավորության այլ անուն:

Ինչպես է դա իրականացվում. մեր ծնողական կոնտրոլերը ունի layout հատկություն, որն լռելյայն ունի 'default.php' արժեքը: Սա կլինի լռելյայն դասավորությունը: Սակայն, եթե օգտագործողի կոնտրոլերի գործողությունը վերասահմանի layout հատկության արժեքը, ապա դասավորությունը կլինի այլ:

Պատճենեք իմ Controller դասի կոդը և տեղադրեք այն /core/Controller.php ֆայլում:

Պատճենեք իմ Page դասի կոդը և տեղադրեք այն /core/Page.php ֆայլում:

Հայերեն
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Մենք օգտագործում ենք cookie-ներ կայքի աշխատանքի, վերլուծության և անհատականացման համար։ Տվյալների մշակումը կատարվում է համաձայն Գաղտնիության քաղաքականության։
ընդունել բոլորը կարգավորել մերժել