Artikel yang memperincikan prinsip enjin templat PHP (dengan contoh kod)

藏色散人
Lepaskan: 2023-04-11 07:26:02
ke hadapan
3594 orang telah melayarinya

Membangunkan projek web biasanya dibahagikan kepada dua bahagian Satu bahagian ialah GUI, iaitu antara muka dan seni, ditulis menggunakan HTML, CSS, JS, dan bahagian lain adalah logik perniagaan, iaitu program dan fungsi, ditulis. menggunakan PHP. Enjin templat ialah "jambatan" yang menghubungkan dua bahagian Ia boleh difahami sebagai kelas PHP, yang mentakrifkan banyak kaedah untuk memuatkan output asal PHP ke dalam gaya antara muka dan kemudian mengeluarkannya.

Kod yang ditulis sebelum menggunakan templat adalah seperti ini:

<?php

$title = “标题”;

$content = “内容”;

?>

<html>

<head><title><?php echo $title; ?></title></head>

<body><?php echo $content; ?></body>

</html>
Salin selepas log masuk

Dengan cara ini, tiada pemisahan antara seni dan logik Ringkasnya, pengaturcara PHP bukan sahaja perlu menulis program tetapi juga mahir dalam seni , yang selalunya sangat sukar, jadi kedua-dua bahagian kerja itu perlu dipisahkan.

Mari cipta enjin templat mudah sebagai contoh untuk lebih memahami prinsip enjin templat.

Seperti yang dinyatakan sebelum ini, membangunkan projek web terbahagi kepada dua bahagian: GUI dan logik perniagaan, jadi kami mencipta dua folder, satu bernama "template" untuk menyimpan templat, mencipta fail tpl.html baharu dan menamakan yang satu lagi Untuk "PHP", yang menyimpan logik perniagaan, buat fail index.php baharu.

Kod fail tpl.html biasanya kelihatan seperti ini:

<html>

<head><title><{$title}></title></head>

<body><{ $content;}></body>

</html>
Salin selepas log masuk

Ia boleh dilihat berbanding dengan kod sebelumnya, tpl.html hanya mempunyai kod html dan tiada kod php, tetapi ia telah ditambahkan Teg baharu, teg ini ditakrifkan sendiri, dan kandungan di dalamnya hanya boleh dikenali selepas disusun oleh enjin templat Fail yang dikompilasi disimpan dalam folder "templates_c". Fail ini digunakan terutamanya untuk reka bentuk antara muka, dan akan menggunakan sejumlah besar CSS, JS dan teknologi lain.

Pada masa ini, tpl.html dan index.php masih terpisah dan tidak mengganggu antara satu sama lain, jadi mereka memerlukan sambungan "bridge", iaitu enjin template, yang sebenarnya kelas PHP. , jadi mytpl boleh dibuat di sini kelas fail PHP.

Fail mytpl.class.php biasanya mentakrifkan kelas MyTpl Tatasusunan tpl_var[] perlu ditakrifkan dalam kelas untuk menyimpan parameter tag kandungan tersuai dalam tpl.html perlu ditakrifkan. Kaedah ini Tujuan utama adalah untuk menukar teg kandungan yang tidak dikenali dalam tpl.hml ke dalam penyata PHP, dan kemudian menulisnya ke tpl_c.html dalam folder "templates_c" Proses ini dipanggil kompilasi.

Biasanya kod fail tpl_c.html adalah seperti ini:

<html>

<head><title><?php echo $this->tpl_var[“title”]; ?></head>

<body><?php echo $this->tpl_var[“content”]; ?}></body>

</html>
Salin selepas log masuk

Dapat dilihat bahawa kod di atas boleh dikenali kerana tag kandungan tersuai telah digantikan dengan pernyataan PHP , tetapi kami masih tidak tahu apakah nilai tajuk dan kandungan Pada masa ini, index.php yang dibuat sebelum ini akan digunakan seperti ini:

Kod di atas hanyalah beberapa kod penerangan yang mudah Nilai pembolehubah boleh ditakrifkan secara langsung atau diperoleh daripada pangkalan data Selain itu, fail juga boleh menulis beberapa PHP yang kompleks program, iaitu Logik perniagaan yang dinyatakan sebelum ini.

include  “tpl.class.php文件”;//加载模板引擎

$tpl = new MyTpl();//实例化一个模板类

$title = “标题”;

$content = “内容”;

$tpl->assign(“title”,$title);//调用模板类中的方法,分配变量

$tpl->assign(“content”,$content);

$tpl->display(“tpl.html”);//调用模板类中的方法,用于显示编译后的内容
Salin selepas log masuk
Dengan cara ini, kerja GUI dan logik perniagaan dipisahkan Pereka seni hanya perlu menulis fail templat untuk menukar antara muka web, manakala pengaturcara PHP boleh menumpukan pada menulis program mereka sendiri.

Syarikat umumnya mempunyai enjin templat mereka sendiri, dan biasanya tidak perlu menulis enjin templat sendiri, kerana sudah ada beberapa enjin templat yang sangat matang di pasaran, seperti Smarty, kita hanya perlu tahu bagaimana untuk menggunakannya Baiklah.

Pembelajaran yang disyorkan: "

Tutorial Video PHP

"

Atas ialah kandungan terperinci Artikel yang memperincikan prinsip enjin templat PHP (dengan contoh kod). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:cnblogs.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan