Heim > Artikel > Backend-Entwicklung > Wie führt CakePHP die Vorlagenvererbung durch?
Mit der kontinuierlichen Entwicklung von Webanwendungen sind immer mehr Open-Source-Frameworks in unser Blickfeld geraten, darunter CakePHP, eines der PHP-Frameworks, das viel Aufmerksamkeit erregt hat. In CakePHP ist die Vorlagenvererbung eine sehr häufig verwendete Technologie, die uns dabei helfen kann, Seiten besser zu organisieren und das wiederholte Schreiben von Code zu reduzieren. Wie führt CakePHP also die Vorlagenvererbung durch?
1. Das Konzept der Vorlagenvererbung
Vorlagenvererbung ist eine Technologie, die eine Masteransicht oder Vorlage auf eine Unteransicht oder Vorlage anwendet. Durch diese Technologie können wir den gemeinsamen Inhalt der Seite extrahieren, ihn in einer Masteransicht organisieren und in den Unteransichten auf die Masteransicht verweisen. Dies erleichtert uns die Verwaltung und Pflege von Seiten und reduziert außerdem das Schreiben von redundantem Code.
2. Implementierung der Template-Vererbung in CakePHP
CakePHP bietet eine leistungsstarke und flexible Template-Engine auf Basis von PHP und unterstützt die Template-Vererbung. Als nächstes erklären wir, wie man die Vorlagenvererbung in CakePHP implementiert.
Zuerst müssen wir eine Masteransicht erstellen. Die Masteransicht enthält im Allgemeinen öffentliche Inhalte, die für jede Seite erforderlich sind, z. B. die Kopfnavigation der Website, das Urheberrecht am unteren Rand und andere Informationen.
Erstellen Sie eine neue Datei default.ctp im Verzeichnis app/View/Layouts/.
<html> <head> <title><?php echo $this->fetch('title'); ?></title> </head> <body> <header> <h1>CakePHP模板继承示例</h1> <nav> <ul> <li><a href="#">首页</a></li> <li><a href="#">关于我们</a></li> <li><a href="#">联系我们</a></li> </ul> </nav> </header> <div id="content"> <?php echo $this->fetch('content'); ?> </div> <footer> <p>©2019 CakePHP模板继承示例</p> </footer> </body> </html>
Erstellen Sie im Verzeichnis app/View/ eine neue demo.ctp-Datei als Unteransicht. In die Datei demo.ctp müssen wir nur den Seiteninhalt schreiben, der sich von der Masteransicht unterscheidet.
<?php $this->extend('default'); ?> <?php $this->assign('title', '这是子视图页面标题'); ?> <h2>这是子视图页面内容</h2> <p>这是一个CakePHP模板继承的示例</p>
Oben in der Unteransicht verwenden wir $this->extend('default')
, um auf die Masteransicht zu verweisen, sodass die Unteransicht das Layout und die Struktur der Masteransicht erbt. Gleichzeitig können wir $this->assign('title', 'This is the subview page title')
verwenden, um den Seitentitel zu übergeben. $this->extend('default')
来引用母版视图,这样就让子视图继承了母版视图的布局和结构。同时,我们可以使用 $this->assign('title', '这是子视图页面标题')
来传递页面标题。
在子视图的内容部分,我们可以写入与母版视图不同的页面内容,这些内容会替换母版视图中相应的占位符。比如在上面的demo.ctp文件中,我们用 c1a436a314ed609750bd7c7d319db4da
和 e388a4556c0f65e1904146cc1a846bee
标签写入了子视图页面的内容。
现在,我们已经创建了母版视图和子视图,可以使用CakePHP来渲染页面了。在控制器中,我们可以使用 $this->render('demo')
或者 $this->render('/Controller/demo')
c1a436a314ed609750bd7c7d319db4da
und e388a4556c0f65e1904146cc1a846bee
, um den Inhalt der Unteransichtsseite zu schreiben.
Da wir nun die Hauptansicht und die Unteransichten erstellt haben, können wir CakePHP zum Rendern der Seite verwenden. Im Controller können wir $this->render('demo')
oder $this->render('/Controller/demo')
verwenden, um die Demo zu rendern .ctp-Unteransicht.
class DemoController extends AppController { public function index() { $this->render('demo'); } }🎜Wenn wir auf die Indexfunktion zugreifen, rendert CakePHP automatisch die Unteransicht demo.ctp und bettet sie in die Masteransicht default.ctp ein. 🎜🎜3. Zusammenfassung🎜🎜In diesem Artikel haben wir einige Grundkenntnisse über die Vorlagenvererbung in CakePHP gelernt, einschließlich der Erstellung von Masteransichten, der Erstellung von Unteransichten und dem Rendern von Seiten usw. Die Vorlagenvererbung ist eine sehr häufig verwendete Technologie, die uns dabei helfen kann, Seiten besser zu organisieren und das wiederholte Schreiben von Code zu reduzieren. Bei der Entwicklung mit CakePHP ist die Vorlagenvererbung auch eine sehr nützliche Technologie, die uns dabei helfen kann, Seiten bequemer zu verwalten und zu pflegen. 🎜
Das obige ist der detaillierte Inhalt vonWie führt CakePHP die Vorlagenvererbung durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!