php smarty 源码,[原]Linux下安装PHP的Smarty模块

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

一、Smarty 简介

Smarty提供了很多强大的功能:

引用

1、强大的表现逻辑:提供适当的构造,能够有条件地计算和迭代处理数据;

2、模板编译:为了减少开销,Smarty在默认情况下将模板转换为可比较的PHP脚本,使得后续的调用速度更快;

3、缓存:Smarty提供了缓存模板的可选特性,缓存与编译不同的是,支持缓存不只是能生成缓存的内容,还能防止执行个别逻辑;

4、高度可配置和可扩展:Smarty的面向对象体系结构允许修改和扩展其默认行为;

5、安全:Smarty提供了很多安全特性,可以避免服务器和应用程序数据遭到设计人员有意或无意的破坏。

attachment.php?fid=616

在网上有很多关于Smarty的语法说明和帮助文档,我这里不再一一细说,这也不是我这篇文档的主要目的。

若要学习Smarty,可参考:

官方网站:http://www.smarty.net/

Smarty中文手册

菜鸟学PHP之Smarty入门

二、在Linux下安装Smarty

Windows下的XAMPP已经带有Smarty,但需要配置php.ini文件,可参考下面的步骤进行。

1、获取介质

当然,你可以从官方网站直接下载最新的代码。但我这里提供红旗 Asianux 3可用的rpm包:

安装包:

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

源码:

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文件内容:

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目录下,内容如下:

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

四、其他PHP模板引擎

参考:

19个PHP模板引擎

25个顶级PHP模板引擎整理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值