php模板引擎原理是什么?-PHP问题

资源魔 36 0

php模板引擎原理是作为视图层以及模子层别离的一种无效处理计划,让先后端更好的分工合作,来自于经典的MVC模子,即【模子层-视图层-管制器模子】,将M以及V完成代码别离,从而使同一个顺序能够应用没有同的体现方式。

php模板引擎原理是:

一、模板引擎的由来

模板引擎思维来自于经典的MVC模子,即模子层 - 视图层 - 管制器模子。MVC原本存正在于桌面顺序中,M指数据模子,V指用户界面,C指管制器。应用MVC的目的是将M以及V完成代码别离,从而使同一个顺序能够应用没有同的体现方式。

跟着Web的盛行,这一模子被引入Web开发中。此时,V(视图层),也就是通常所说的模板,完成了数据天生以及数据展现的别离。晚期的视图一般为由html元素管制界面,跟着互联网的倒退,一些新的体现出技巧(例如Flex等)盛行起来,MVC使患上数据以及体现失去别离,一套数据能够用于多种体现层而无需修正逻辑层的代码。例如,能够正在M层(模子层)天生博客文章列表的数据,而后能够正在传统的Web页面、RIA使用、手机使用中应用没有同的体现层技巧来展现数据,而不必修正逻辑层的代码,完成前端以及后真个别离。

别的,AJAX技巧的盛行、Jquery库的普遍使用,使晚期html、Javascript、PHP代码混写的状况失去改观。AJAX技巧的使用使数据的申请以及天生、展现完成了别离,促成了体现层(V)以及代码层的别离。

模板引擎作为视图层以及模子层别离的一种无效处理计划,让先后端更好的分工合作。PHP开发经验了先后端混编,到竭力推许模板引擎(以Smarty为代表),再到现在的回归天然、乃至质疑PHP模板引擎存正在的须要性这几个倒退阶段。

PHP中到底有无须要应用模板引擎?模板引擎的原理是甚么?为何Smarty会那末的盛行,而现在正在PHP社区又惹起如斯年夜的争执?这些都是正在接上去探讨的成绩。

2代码分层的思维

PHP作为轻巧灵敏的剧本言语,十分适宜Web开发这类开发周期短、需要变动快、强挪用户体验的需要以及营业。PHP夙起开发,通常都是PHP代码以及HTML混写,代码中四处可见数据库操作、逻辑判别、HTML代码天生,乃至Javascript代码等。关于小型名目,这类编码形式可以很快的实现需要。然而一旦名目扩展后,前端逻辑会愈来愈复杂,这类齐全混写的形式势必造成代码可读性差以及前期保护艰难等等成绩。

正在PHP倒退初期,咱们可能这么写:

<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['id']."</td><td>"
.$row['username']."</td></tr>";
}
mysql_free_result($result);
?>
</table>
<?php
//其余性能模块
?>
</body>
</html>

不言而喻,关于上述代码无论是正在可读性、可保护性仍是正在代码的复用性上都是极端差的。需求想方法完成数据天生以及显示的别离,通常最容易想到的方法就是把以及数据库打交道的代码独自放到一个文件中,显示数据的局部放到另外一个文件中。新建文件data.php并猎取数据,如如下代码所示:

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

这两种做法都不完成PHP代码以及HTML代码的别离,然而第二种做法相比第一种做法完成了数据猎取以及数据展现的别离。正在第二种解决办法中,此中一个文件专门担任以及数据库交互,猎取以及解决数据。而后交由另外一个文件显示数据,这个担任显示的文件只是进行一些简略的逻辑操作,例如轮回、判别、输入等。显然,第二种解决形式比第一种解决形式愈加易于保护。

关于第二种解决形式,咱们还能够应用HereDoc语法使其更简约,代码以下所示:

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

第二种解决形式即原生态的PHP模板机制,是以后一些PHP顺序所采纳的模板机制,特性就是简略灵敏、合乎PHP的语法以及应用习气、学习老本低。缺陷就是不克不及完成一些初级性能,例照实现可设置装备摆设化、缓存、使患上模板文件脱离PHP语法等等。明天先写到这里,这些成绩咱们将会正在接上去的文章中陆续处理。

相干学习保举:PHP编程从入门到通晓

以上就是php模板引擎原理是甚么?的具体内容,更多请存眷资源魔其它相干文章!

标签: php php教程 php故障解决 php使用问题 模板引擎

抱歉,评论功能暂时关闭!