Heim  >  Artikel  >  Backend-Entwicklung  >  Was ist das Prinzip der PHP-Template-Engine?

Was ist das Prinzip der PHP-Template-Engine?

coldplay.xixi
coldplay.xixiOriginal
2020-07-02 09:51:563134Durchsuche

Das Prinzip der PHP-Template-Engine ist eine effektive Lösung, um die Ansichtsebene und die Modellebene zu trennen und so eine bessere Arbeitsteilung und Zusammenarbeit zwischen Front- und Backend zu ermöglichen ist [Modellebenenansicht, Ebenensteuerung [Controller-Modell], das M- und V-Code trennt, sodass dasselbe Programm unterschiedliche Darstellungen verwenden kann.

Was ist das Prinzip der PHP-Template-Engine?

Das Prinzip der PHP-Template-Engine ist:

Der Ursprung der Template-Engine

Die Idee der Template-Engine stammt aus dem klassischen MVC Modell, also Modellebene – Ansichtsebene – Controller-Modell. MVC existierte ursprünglich in Desktop-Programmen, M bezieht sich auf das Datenmodell, V bezieht sich auf die Benutzeroberfläche und C bezieht sich auf den Controller. Der Zweck der Verwendung von MVC besteht darin, M- und V-Code zu trennen, sodass dasselbe Programm unterschiedliche Präsentationsformen verwenden kann.

Mit der Popularität des Webs wurde dieses Modell in die Webentwicklung eingeführt. Zu diesem Zeitpunkt realisiert V (Ansichtsebene), allgemein als Vorlage bekannt, die Trennung von Datengenerierung und Datenanzeige. Frühere Ansichten steuerten die Schnittstelle normalerweise durch HTML-Elemente. Mit der Entwicklung des Internets wurden einige neue Präsentationstechnologien (z. B. Flex usw.) populär, und ein Datensatz kann für mehrere Präsentationsebenen verwendet werden . Der Code der Logikschicht muss nicht geändert werden. Beispielsweise können die Daten einer Blog-Beitragsliste in der M-Schicht (Modellschicht) generiert werden, und dann können verschiedene Technologien der Präsentationsschicht verwendet werden, um die Daten in herkömmlichen Webseiten, RIA-Anwendungen und mobilen Anwendungen anzuzeigen, ohne die Logik zu ändern Layer-Code. Trennung von Front-End und Back-End.

Darüber hinaus haben die Popularität der AJAX-Technologie und die weit verbreitete Anwendung der Jquery-Bibliothek das frühe gemischte Schreiben von HTML-, Javascript- und PHP-Codes verbessert. Die Anwendung der AJAX-Technologie trennt Datenanforderung, -generierung und -anzeige und fördert die Trennung von Präsentationsschicht (V) und Codeschicht.

Die Template-Engine ist eine effektive Lösung zur Trennung der Ansichtsebene und der Modellebene und ermöglicht so eine bessere Arbeitsteilung und Zusammenarbeit zwischen Front- und Back-End. Die PHP-Entwicklung hat mehrere Entwicklungsstufen durchlaufen, von der Front-End- und Back-End-Mischung über die starke Förderung von Template-Engines (vertreten durch Smarty) bis hin zur heutigen Rückkehr zur Natur und sogar der Infragestellung der Notwendigkeit der Existenz von PHP-Templates Motoren.

Ist es notwendig, eine Template-Engine in PHP zu verwenden? Was ist das Prinzip der Template-Engine? Warum ist Smarty heute so beliebt und sorgt in der PHP-Community für so viele Kontroversen? Dies sind die Themen, die als nächstes besprochen werden.

2 Die Idee der Codeschichtung

Als leichte und flexible Skriptsprache eignet sich PHP sehr gut für die Webentwicklung, die kurze Entwicklungszyklen und schnelle Änderungen aufweist in Anforderungen und betont Benutzererfahrung und Geschäft. Als PHP in den frühen Tagen entwickelt wurde, war es normalerweise eine Mischung aus PHP-Code und HTML. Datenbankoperationen, logische Urteile, HTML-Code-Generierung und sogar Javascript-Code sind überall im Code zu sehen. Bei kleinen Projekten kann diese Codierungsmethode die Anforderungen schnell erfüllen. Sobald das Projekt jedoch erweitert wird, wird die Front-End-Logik immer komplexer. Diese vollständig gemischte Schreibmethode führt unweigerlich zu Problemen wie schlechter Lesbarkeit des Codes und Schwierigkeiten bei der späteren Wartung.

In den frühen Tagen der PHP-Entwicklung könnten wir schreiben:

<html>
<head>
<meta http-equiv="content-type"content="text/html;charset=utf-8">
<title>最原始的PHP编码风格 - 李苦李</title>
</head>
<body>
<table>
<tr>
<td>ID</td>
<td>姓名</td>
</tr>
<?php
mysql_connect("localhost","admin","password")or
die("Could not connect:".mysql_error());
mysql_select_db("user_db");
$result= mysql_query("select id,username from user");
while($row= mysql_fetch_array($result)) {
echo"<tr><td>".$row[&#39;id&#39;]."</td><td>"
.$row[&#39;username&#39;]."</td></tr>";
}
mysql_free_result($result);
?>
</table>
<?php
//其他功能模块
?>
</body>
</html>

Offensichtlich ist der obige Code in Bezug auf Lesbarkeit, Wartbarkeit und Code-Wiederverwendbarkeit äußerst schlecht. Sie müssen einen Weg finden, die Datengenerierung und -anzeige zu trennen. Normalerweise ist es am einfachsten, den Code, der mit der Datenbank interagiert, in einer separaten Datei abzulegen und den Teil, der die Daten anzeigt, in einer anderen Datei. Erstellen Sie eine neue Datei data.php und rufen Sie die Daten ab, wie im folgenden Code gezeigt:

<?php
mysql_connect("localhost","admin","password")or
die("Could not connect:".mysql_error());
mysql_select_db("user_db");
$result= mysql_query("select id,username from user");
while($row= mysql_fetch_array($result)) {
$data[] =$row;
}  
mysql_free_result($result);
?>

Keine dieser beiden Methoden erreicht die Trennung von PHP-Code und HTML-Code, aber die zweite Methode erzielt bessere Ergebnisse als die erste Methode Trennung von Datenerfassung und Datenpräsentation. Bei der zweiten Verarbeitungsmethode ist eine der Dateien speziell für die Interaktion mit der Datenbank sowie das Abrufen und Verarbeiten von Daten verantwortlich. Anschließend wird es zur Anzeige der Daten an eine andere Datei übergeben. Diese für die Anzeige zuständige Datei führt nur einige einfache logische Operationen aus, z. B. Schleifen, Beurteilung, Ausgabe usw. Offensichtlich ist die zweite Verarbeitungsmethode einfacher zu warten als die erste Verarbeitungsmethode.

Für die zweite Verarbeitungsmethode können wir auch die HereDoc-Syntax verwenden, um sie prägnanter zu gestalten. Der Code lautet wie folgt:

<?php
foreach($dataas$value) {
echo<<< TM
<tr><td>$value[id]</td><td>$value[username]</td></tr>;
TM;
}
?>

Die zweite Verarbeitungsmethode ist der ursprüngliche PHP-Vorlagenmechanismus Der derzeit von einigen PHP-Programmen verwendete Vorlagenmechanismus zeichnet sich durch seine Einfachheit, Flexibilität, Übereinstimmung mit der Syntax und den Nutzungsgewohnheiten von PHP sowie geringe Lernkosten aus. Der Nachteil besteht darin, dass einige erweiterte Funktionen nicht implementiert werden können, z. B. Konfigurierbarkeit, Caching, Unabhängigkeit von Vorlagendateien von der PHP-Syntax usw. Ich werde dies heute hier schreiben und wir werden diese Probleme in den folgenden Artikeln nacheinander lösen.

Verwandte Lernempfehlungen: PHP-Programmierung vom Einstieg bis zur Beherrschung

Das obige ist der detaillierte Inhalt vonWas ist das Prinzip der PHP-Template-Engine?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn