[原]Linux下安装PHP的Smarty模块

    模版引擎的目的,就是要达到逻辑分离的功能。它能让程序开发者专注于资料的控制或是功能的达成;而视觉设计师则可专注于网页排版,让网页看起来更具有专业感!Smarty 是PHP的“半官方”的模板化引擎,可能是最流行、功能最强大的PHP模板化引擎,可以自由使用。

一、Smarty 简介
Smarty提供了很多强大的功能:

引用
1、强大的表现逻辑:提供适当的构造,能够有条件地计算和迭代处理数据;
2、模板编译:为了减少开销,Smarty在默认情况下将模板转换为可比较的PHP脚本,使得后续的调用速度更快;
3、缓存:Smarty提供了缓存模板的可选特性,缓存与编译不同的是,支持缓存不只是能生成缓存的内容,还能防止执行个别逻辑;
4、高度可配置和可扩展:Smarty的面向对象体系结构允许修改和扩展其默认行为;
5、安全:Smarty提供了很多安全特性,可以避免服务器和应用程序数据遭到设计人员有意或无意的破坏。

点击在新窗口中浏览此图片二、在Linux下安装Smarty
Windows下的XAMPP已经带有Smarty,但需要配置php.ini文件,可参考下面的步骤进行。
1、获取介质
当然,你可以从官方网站直接下载最新的代码。但我这里提供红旗 Asianux 3可用的rpm包:
安装包:

[原]Linux下安装PHP的Smarty模块下载文件
点击这里下载文件

安装:

# rpm -ivh  php-Smarty-2.6.25-1.noarch.rpm

源码:

[原]Linux下安装PHP的Smarty模块下载文件
点击这里下载文件

2、修改php.ini
因为需要将Smarty类库包含到应用程序中,所以需要确保此位置包含在PHP的include_path配置指令中。
类文件为Smarty.class.php,可通过下面的命令查询其位置:

引用
# rpm -ql php-Smarty|grep Smarty.class.php
/usr/share/php/Smarty/Smarty.class.php

然后修改对应的/etc/php.ini文件,在include_path部分加入:

引用
include_path = ".:/usr/share/php/Smarty/"

保存后,重启httpd服务即可:

# service httpd restart

※ 注意
如果您需要在Windows环境中使用Smarty,以XAMPP为例,可修改安装目录D:\Tools\xampp\php的php.ini为:

引用
include_path = ".;D:\Tools\xampp\php\PEAR\PhpDocumentor\phpDocumentor\Smarty-2.6.0\libs"

Windows平台下,是用分号“;”间隔,Linux平台下,用冒号“:”。

3、创建存储Smarty模板和配置文件的4个目录
如果您的网站需要使用Smarty,必须在网站的根目录下创建4个目录,它们分别是:

引用
templates:放置所有网站模板;
configs:放置在特定网站中使用的所有特殊的Smarty配置文件;
templates_c:放置Smarty编译的所有模板,该目录需要让运行Web服务器的用户拥有修改(写)权限,一般是apache用户;
cache:在启用缓存特性的情况下,放置Smarty缓存的所有模板。

Windows环境下,只要创建好这些目录就可以使用Smarty模块了。而Linux环境中,还需要给予它们适当的权限:

# chown -R apache.apache testphp/

否则不能正常显示(可从Web服务器日志中获取相关报错信息)

※ 安全建议
默认情况下,Smarty认为这些目录与实例化Smarty类的脚本位于相同的目录,也就是虚拟主机的根目录,但建议将这些目录放在Web服务器文档根之外的位置。然后分别使用Smart的$template_dir、$compile_dir、$config_dir和$cache_dir修改默认路径。

三、创建Smarty实例
在PHP脚本中,使用下面的语句即可创建一个Smarty类的实例,smarty_test.php文件内容:

<?php
require ("Smarty.class.php");

$smarty = new Smarty;
$smarty->template_dir="/usr/local/lib/php5/smarty/smarty/template_dir/";
$smarty->compile_dir="/usr/local/lib/php5/smarty/compile_dir/";
$smarty->config_dir="/usr/local/lib/php5/smarty/config_dir";
$smarty->cache_dir="/usr/local/lib/php5/smarty/cache_dir";

$smarty->left_delimiter = '<{'; //重定义模板中变量的分隔符
$smarty->right_delimiter = '}>';  //默认是{}

$smarty->assign("title", "测试用的网页标题");
$smarty->assign("content", "测试用的网页内容");
// 上面两行也可以用这行代替
// $smarty->assign(array("title" => "测试用的网页标题", "content" => "测试用的网页内容"));
$smarty->display('smarty_test.tpl');
?>

其中,smarty_test.tpl就是模板,其在templates目录下,内容如下:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title><{$title}></title>
</head>
<body>
<{$content}>
</body>
</html>

这样,当显示smarty_test.php时,就会显示模板被替换相对应变量后的页面。(注意,访问的是.php,而不是模板本身页面)

四、其他PHP模板引擎
参考:
19个PHP模板引擎
25个顶级PHP模板引擎整理

[转]Better PHP Practices
PHP设计模式——策略模式
PHP设计模式——命令模式
PHP设计模式——观察者模式
PHP设计模式——单元素模式

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/104739.html

(0)
上一篇 2021年8月25日
下一篇 2021年8月25日

相关推荐

发表回复

登录后才能评论