php smarty配置,PHP中使用Smarty模板目录结构配置

接触一个新东西,往往搭建最初始的环境最让人捉急。在使用PHP模板Smarty过程中,如果不涉及自定义目录结构的话,按照下面的目录组织就可以直接使用了(前提是需要

接触一个新东西,往往搭建最初始的环境最让人捉急。

在使用PHP模板Smarty过程中,如果不涉及自定义目录结构的话,按照下面的目录组织就可以直接使用了(前提是需要阅读以下用户手册)。

c5d44ca944eee20181e6f71e6dc972bf.png

图上的每个目录都有了相应的说明,关于smarty的工作原理就是按照Smarty的语法规则编写模本文件,然后PHP脚本提供对应的数据,二者通过Smarty模板引擎最终输出可以展示的文件(包含格式+数据)。

如下图是Smarty最基本的工作原理,当然Smarty还提供更多强大的功能。

95831cac7157e515fd7d4019ff184f2a.png

接下来就是一个Hello Smarty的体验了。

1.编一个提供数据的PHP文件(index.php)

require('./smarty/Smarty.class.php');

$_smarty=new Smarty();

$_smarty->assign('title', '欢迎');

$_smarty->assign('name', 'Smarty');

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

?>

2.编一个用户展示数据的模本文件index.tpl(注意模板文件要放置到templates文件夹中)

html>

{$title}

Hello, {$name}

3.访问index.php

d822f58d27823fd308e35477070c96d0.png

至此Smarty就可以工作了,但是关于Smarty的用法不是本文的重点,本文的重点是Smarty的目录结果配置。

为了说明Smarty的目录结构配置,先引入一个问题:目前的php文件都在工程根目录,实际应用中这样并不可取,这时候我们新建一个demo1.php放置到test目录下,看看会发生什么情况。

1.  ./test/demo1.php代码如下:

require('../smarty/Smarty.class.php');

$_smarty=new Smarty();

$_smarty->assign('title', '欢迎');

$_smarty->assign('name', 'Smarty');

var_dump($_smarty->getTemplateDir());

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

?>

注意:

模板文件不变

引入Smarty.class.php文件的路径发生变化。

打印模板目录信息(getTemplateDir())

2. 访问/test/demo1.php文件看看结果:

591bdeb0dbe8264a40b891d83eb05110.png

首先问题出在模板文件index.tpl找不到,其次打印出的模板目录是:'.\templates\'很显然当前test目录下并不存在template目录,这个时候该怎么办呢?

3.自定义目录结构

实际开发中目录结构自然不能因为某个框架或者组件变成死的,当然框架或组件的开发者一般都会提供最大限度的可扩展,可配置。

上面的问题产生的原因倒不是应为我们的test目录下没有templates目录,而是我们在使用Smarty的时候完全采用了默认的配置,这样做方便了使用,单不利于项目的组织和管理。

我们能够做的就是将Smarty的自定义配置分离出来,单独做一个文件,然后在使用到Smarty对象的地方直接引用即可。

3.1下面是一个简单的分离示例(smarty.config.php):

//Smarty PHP configuration

define('REAL_PATH', dirname(__FILE__));

require(REAL_PATH.'/smarty/Smarty.class.php');

$_smarty=new Smarty();

$_smarty->setCacheDir(REAL_PATH.'/cache');

$_smarty->setConfigDir(REAL_PATH.'/configs');

$_smarty->setPluginsDir(REAL_PATH.'/plugins');

$_smarty->setTemplateDir(REAL_PATH.'/templates');

$_smarty->setCompileDir(REAL_PATH.'/templates_c');

//添加Smarty自带的插件库

$_smarty->addPluginsDir(REAL_PATH.'/smarty/plugins');

//检测Smarty目录结构配置是否有效

// $_smarty->testInstall();

?>

3.2 将smarty.config.php放置到工程的根目录,,然后去掉$_smarty->testInstall()的注释,访问smarty.config.php看看有什么效果:

4e1cd64b7784d3d759975af7196b393d.png

看到这么多Ok,就说明我们的Smarty目录结构配置成功了。

3.3接下来我们要使用smarty.config.php,在test目录下创建demo2.php:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值