enthält Es gibt einen Download namens CodeIgniter Library, dass all dies sehr einfach macht, . Sobald Sie lernen, wie Sie es implementieren, wird die Codierung sehr einfach. Außerdem können Sie jede Seite oder jeden Controller so ändern, dass sie verschiedene Vorlagen (Layouts) haben.
das System verwenden ich oben Sie erwähnt, kann Folgendes tun:
<?php
function index() {
$data['some_variable'] = 'some data';
$this->template->write_view('content', 'page/home', $data);
$this->template->render();
}
?>
Überall ändern Sie können auch die Sie verwenden Vorlage wünschen:
<?php
$this->template->set_template('login');
?>
Alle diese Vorlagen haben Namen, die gehalten werden in einer Konfigurationsdatei. Sie können so viele Vorlagen haben, wie Sie möchten.
Die Vorlagendatei selbst würde wie folgt aussehen:
<html>
.... etc. all other html elements
<body>
header html goes here
<?=$content?>
footer html goes here
</body>
</html>
Sie können sogar Abschnitte einrichten können, um Ihre Inhalte zu schreiben. Ich glaube nicht, in der Regel dies tun, weil es eine Menge von Ansichten ist, einschließlich, aber wenn Sie die volle Kontrolle wie diese brauchen, sind Sie immer noch so tun können:
<?php
function index() {
$data['header'] = 'header info';
$data['content'] = 'content info';
$data['sidebar'] = 'sidebar info';
$data['footer'] = 'footer info';
$this->template->write_view('content', 'page/home', $data);
$this->template->write_view('header', 'modules/header');
$this->template->write_view('sidebar', 'modules/sidebar');
$this->template->write_view('footer', 'modules/footer');
$this->template->render();
}
?>
HTML-Template-Code:
<html>
.... etc. all other html elements
<body>
<div id="header">
<?=$header?>
</div>
<div id="content">
<div id="left">
<?=$content?>
</div>
<div id="sidebar">
<?=$sidebar?>
</div>
</div>
<div id="footer">
<?=$footer?>
</div>
</body>
</html>
Auf diese Weise müssen Sie sich nur darum kümmern, eine Datei in alle Controller-Funktionen aufzunehmen. Wenn Sie nicht PHP 5 verwenden (Sie sollten wechseln), dann sollten Sie statt <?=$content?>
verwenden.
Verbessert dies die Leistung? –
Leistung der Website? Ich denke nicht. Leistung der Programmierung? Definitiv, da Sie eine Trennung von Controllern und Ansichten haben und - richtig ausgeführt - zwischen Layout und Inhalt. – Residuum
Ja das ist ein gutes Modell. Ihr Controller sollte nicht alles über Kopf- und Fußzeilen wissen müssen und dass das Feature der Markup-Liste vorausgeht. Das ist die Aufgabe des Views. – GloryFish