⊗ppMVDFmCn 28 of 35 menu

Controller in Ihrem eigenen MVC-Framework in PHP

Wie Sie bereits wissen, haben alle Controller unseres Frameworks die Methode render, die aufgerufen werden muss, um Daten an die View zu senden. Diese Methode erben unsere benutzerdefinierten Controller von der Elternklasse Controller, die sich im Kern befindet. Lassen Sie uns diese Klasse erstellen:

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

Wie Sie sehen, akzeptiert die Methode render als Parameter den Namen der View und die Daten für die Anzeige. Lassen Sie diese Methode ein Objekt der speziellen Klasse Page zurückgeben, in der die Informationen über die Darstellung der Daten der Controller-Action enthalten sein werden. In dieser Klasse werden der Name der View, die Daten, sowie der Seitentitel und der Dateiname des Layouts der Website enthalten sein:

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

Dann wird der Code unserer Methode render so aussehen:

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

Ich erkläre, was hier passiert. Der Name der View und die Daten kommen als Parameter der Methode. Allerdings wird im benutzerdefinierten Controller noch der Seitentitel festgelegt - durch das Setzen der Eigenschaft title. Das bedeutet, dass in $this->title der Titel enthalten sein wird, den wir an den Konstruktor der Klasse Page übergeben.

Es gibt auch Nuancen beim Layout. Wie Sie wissen, verwendet unser Framework das Layout aus der Datei default.php. Tatsächlich kann jede Action ein anderes Layout haben. Dafür muss in der Action selbst in die Eigenschaft layout ein anderer Layoutname geschrieben werden.

Wie das erreicht wird: Unser übergeordneter Controller hat die Eigenschaft layout, die standardmäßig den Wert 'default.php' hat. Dies wird das Standard-Layout sein. Wenn jedoch die Action des benutzerdefinierten Controllers den Wert der Eigenschaft layout überschreibt, dann wird auch das Layout ein anderes sein.

Kopieren Sie den Code meiner Klasse Controller und platzieren Sie ihn in der Datei /core/Controller.php.

Kopieren Sie den Code meiner Klasse Page und platzieren Sie ihn in der Datei /core/Page.php.

Deutsch
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskΕλληνικά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
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen