费尔php模板引擎 mysql 设置_Php模板引擎Smarty安装和配置

Smarty 是PHP的一个模板引擎,是由Monte Ohrt 和 Andrei Zmievski 使用PHP语言开发的,发展至今已成为一个非常流行的模板引擎,Smarty 提供了一种易于管理和使用的方法,将PHP代码从HMTL代码页面中分享出来,使用程序员与页面美工之间的分工更加明确,大大提高团队的开发效率。

1、要使用Smarty 可到官方网站http://www.smarty.net 去下载,smary2.x 和3.x区别:

【转】Smarty 3 API 的语法结构已经重构,使之更一致性和模块化,虽然为了向下兼容,仍然支持Smarty 2的语法,但会抛出一个被弃用的notice,虽然你可以屏蔽该notice,但强烈建议,在使用Smarty 3 时使用3的语法,一方面,Smarty 2的语法很可能在后面的版本中逐渐被取消,另一方面, Smarty2的语法,是对Smarty3的API的封装,所以性能方面也会有损失。 以下是 Smarty3与Smarty2的差别之处

1) 基本上,Smarty3的方法采用驼峰式的命名方式,如 fooBarBaz ;

2) 所有Smarty的属性都有get 和 set 的方法 如$smarty->cache_dir = ‘foo/’ 现在可以这样赋值 $smarty->setCacheDir('foo/'),同样可以通过 $smarty->getCacheDir() 来得到该属性值 ;

3) Smarty 3废除了一些如 ”is*”的方法,因为他们和现在的”get*”方法重复了 ;

4) Smarty 3 只能在PHP5下运行,不支持PHP4.;

5) {php} 标签默认是关闭的. 使用$smarty->allow_php_tag=true.开启 ;

6) 被空白包围的分隔符将不被解析,如{ foo }将不再作为smarty标签被解析,你必须使用{foo} 。

下载完成按以下步骤安装:

(1) 将下载完的 Smarty 压缩包解压到一个指定位置,比如C:/Smarty

(2) 因为在程序中要用到 Smarty 的类库,而Smarty 类文件是位于 libs 文件夹下的Smarty.class.php文件,所以需要修改 PHP的配置文件 Php.ini 文件:查找 include_path 项,在下面添加 include_path = " .; c:/smarty/libs ",注意,多个路径可用分号隔开,因为新添加的路径会覆盖上面的路径设置。

; UNIX: "/path1:/path2"

;include_path = ".:/php/includes"

;

; Windows: "\path1;\path2"

include_path=".;F:\xampp\php\PEAR"

改为:

; Windows: "\path1;\path2"

include_path=".;F:\xampp\php\PEAR;F:\programFiles\Smarty-3.1.16\libs"

页面引用时:require ( ' Smarty.class.php' );(3) 另一种做法是手动设置SMARTY_DIR常量,例如:

define ( ' SMARTY_DIR' ,' /usr/local/lib/php/Smarty/ libs/' );

require ( SMARTY_DIR.' Smarty.class.php' );

(4) 还有一种做法是引用库文件的绝对路径,不推荐使用,代码如下:

require ( '/usr/local/lib/php/Smarty/libs/Smarty.class.php' );

[ 注意:其中路径以实际安装路径为准,文中只做参考。]

在PHP中实例化Smarty对象的方法:

// NOTE: Smarty has a capital 'S'

require_once('Smarty.class.php');

$smarty = new Smarty();

?>

现在,库文件已经放好了,可以开始为你的程序配置Smarty了:

Smarty可配置四个目录,默认名称分别是 templates/, templates_c/, configs/ 和cache/。

强烈建议分别在每个使用Smarty的程序中都单独定义这些目录。

你可以通过testInstall() 来测试Smarty是否有权限读写这些目录。

在下面的安装例子中,我们将为一个留言本程序建立Smarty环境。 我们提供了一个目录命名约定的例子。 你可以为任何的程序建立同样的环境,仅需要修改guestbook/名称。

/usr/local/lib/Smarty-v.e.r/libs/Smarty.class.php

debug.tpl

sysplugins/*plugins/*

/web/www.example.com/

guestbook/

templates/

index.tpl

templates_c/

configs/

cache/

htdocs/

index.php

明确你的web服务器文档根目录。在下面的例子中, 文档根目录是/web/www.example.com/guestbook/htdocs/。 Smarty目录仅可以通过Smarty库文件访问,而不能直接被浏览器访问。 这样可以避免一些安全问题,强烈建议(但不强制)把这些目录 放到WEB服务器文档根目录之外。

将会有至少一个文件是放到文档根目录的,这个文件也会被浏览器访问到。 我们将这文件命名为index.php, 放置到文档根目录/htdocs/中。

Smarty需要一些对目录的 读写权限 (windows用户请忽略),包括 $compile_dir 和$cache_dir 目录 (templates_c/ 和 cache/), 所以,要确保web服务器用户有权限读写它们。

我们需要创建文件index.tpl,然后供Smarty显示。 文件需要放到$template_dir目录内。

Example 2.8. /web/www.example.com/guestbook/templates/index.tpl

{* Smarty *}

Hello {$name}, welcome to Smarty!

{* Smarty *}是模板的注释. 虽然不是必须的,但在模板内添加注释这是个很好的习惯。 它可以帮助识别出文件类型,而不需要看后缀。 比如说,代码编辑器可以识别该文件并自动语法高亮。

现在,我们来修改index.php. 我们将创建Smarty的实例,给模板assign() 赋值变量, 并且display()显示该模板文件 index.tpl。

Example 2.9. 修改 /web/www.example.com/docs/guestbook/index.php

<?phprequire_once (SMARTY_DIR . 'Smarty.class.php');$smarty = newSmarty();$smarty->setTemplateDir('/web/www.example.com/guestbook/templates/')$smarty->setCompileDir('/web/www.example.com/guestbook/templates_c/');$smarty->setConfigDir('/web/www.example.com/guestbook/configs/');$smarty->setCacheDir('/web/www.example.com/guestbook/cache/');$smarty->assign('name','Ned');//** un-comment the following line to show the debug console

//$smarty->debugging = true;

$smarty->display('index.tpl');?>

(上面的setTemplateDir等不写都默认是这几个文件夹,所以不写也可以)

说明

在我们的例子中,我们为Smarty的目录使用了绝对路径。 如果/web/www.example.com/guestbook/在你PHP的include_path内, 那么,这些设置不是必须的。 然而,设置成绝对路径,是更高效和更不容易出错(来自经验)。 这可以保证Smarty的目录路径被设置成正确的。

现在,用浏览器访问index.php文件。 你可以看到"Hello Ned, welcome to Smarty!"

你已经完成了Smarty的基础安装!

稍微更灵活的方式是使用扩展类来安装Smarty和初始化。 代替反复地定义路径,赋同样的值等等,我们可以把这些操作放在一个地方进行。

我们新建一个目录/php/includes/guestbook/,并新建一个 setup.php文件。 在下面的例子中,我们假设/php/includes 目录已经在include_path中。 确定你已经进行这个配置,或者使用绝对路径。

require('Smarty.class.php');//The setup.php file is a good place to load

// required application library files, and you

// can do that right here. An example:

// require('guestbook/guestbook.lib.php');

class Smarty_GuestBook extendsSmarty {function__construct()

{//Class Constructor.

// These automatically get set with each new instance.

parent::__construct();$this->setTemplateDir('/web/www.example.com/guestbook/templates/');$this->setCompileDir('/web/www.example.com/guestbook/templates_c/');$this->setConfigDir('/web/www.example.com/guestbook/configs/');$this->setCacheDir('/web/www.example.com/guestbook/cache/');$this->caching = Smarty::CACHING_LIFETIME_CURRENT;$this->assign('app_name', 'Guest Book');

}

}?>

在index.php文件中使用setup.php:

Example 2.11. /web/www.example.com/guestbook/htdocs/index.php

require('guestbook/setup.php');

$smarty = new Smarty_GuestBook();

$smarty->assign('name','Ned');

$smarty->display('index.tpl');

?>

现在你可以看到这是非常简单就可以实例化一个Smarty的对象, 仅调用Smarty_GuestBook()就可以自动初始化程序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【优质项目推荐】 1、项目代码均经过严格本地测试,运行OK,确保功能稳定后才上传平台。可放心下载并立即投入使用,若遇到任何使用问题,随时欢迎私信反馈与沟通,博主会第一时间回复。 2、项目适用于计算机相关专业(如计科、信息安全、数据科学、人工智能、通信、物联网、自动化、电子信息等)的在校学生、专业教师,或企业员工,小白入门等都适用。 3、该项目不仅具有很高的学习借鉴价值,对于初学者来说,也是入门进阶的绝佳选择;当然也可以直接用于 毕设、课设、期末大作业或项目初期立项演示等。 3、开放创新:如果您有一定基础,且热爱探索钻研,可以在此代码基础上二次开发,进行修改、扩展,创造出属于自己的独特应用。 欢迎下载使用优质资源!欢迎借鉴使用,并欢迎学习交流,共同探索编程的无穷魅力! 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip
好的,关于Smarty模板引擎的学习笔记,我可以为您提供以下内容: 1. Smarty是什么? Smarty是一个用PHP编写的模板引擎,它将PHP代码与HTML代码分离,使得代码更易于维护和设计。Smarty使用一套模板标签来代替PHP代码,这些标签可以在模板中使用,以生成最终的HTML代码。 2. Smarty的优势 - 简单易用:Smarty的模板标签简单易懂,可以快速上手。 - 分离代码:SmartyPHP代码与HTML代码分离,使得代码更易于维护和设计。 - 可扩展性:Smarty支持插件机制,可以方便地扩展和定制功能。 - 性能优化:Smarty支持缓存机制,可以提高页面加载速度。 3. Smarty的基本语法 Smarty的模板标签由大括号包围,例如:{tag}。以下是Smarty的一些基本标签: - 输出变量:{$variable} - 条件语句:{if $variable == 'value'}{/if} - 循环语句:{foreach $array as $key => $value}{/foreach} - 引入文件:{include file="filename.tpl"} 4. Smarty的高级功能 - 模板继承:Smarty支持模板继承,可以减少模板重复代码。 - 插件机制:Smarty支持插件机制,可以方便地扩展和定制功能。 - 缓存机制:Smarty支持缓存机制,可以提高页面加载速度。 - 自定义函数:Smarty支持自定义函数,可以方便地扩展其功能。 以上是我为您提供的Smarty模板引擎学习笔记,希望对您有所帮助。如果您有其他问题,欢迎继续提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值