如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接信息。

smarty是存在了十多年的老牌php模板引擎,目前仍然有一定的使用率。官方网址是:http://www.smarty.net/ 。今天苏南大叔带给大家的这个教程,非常基础实用。就是利用composer安装smarty,并附上简单的smarty使用demo。如果您还没有安装composer,那么请查看苏南大叔以前给大家写的相关文章: https://newsn.net/tag/composer/

composer require "smarty/smarty" -vvv

在命令行里面,可能会提示你,需要搜索一下smarty(我的mac下面没有提示,直接完成。win下面,同样的语句,提示搜索了)。如果提示了,那么请注意看红箭头的位置,都是你可能输入的项目。

利用composer安装smarty - composer_smarty_01

执行成功之后,根目录下面的composer.json文件,就有smarty信息了。

利用composer安装smarty - composer_smarty_02

然后就可以在require了"vendor/autoload.php"的php文件中,使用smarty了。下面是个demo。

define('APP_DEBUG', true);
define('SITE_ROOT', str_replace('\\', '/', __DIR__));
require './vendor/autoload.php';
$smarty = new \Smarty;
$smarty->left_delimiter = "{{"; //解决和js冲突的问题
$smarty->right_delimiter = "}}";
$smarty->setTemplateDir(SITE_ROOT . '/views/'); //设置模板目录
$smarty->setCompileDir(SITE_ROOT . '/smarty/cache/templates_c/');
$smarty->setConfigDir(SITE_ROOT . '/views/smarty_configs/');
$smarty->setCacheDir(SITE_ROOT . '/smarty/cache/smarty_cache/');
//$smarty->force_compile = true;
if (APP_DEBUG) {
    //$smarty->debugging      = true;
    $smarty->caching        = false;
    $smarty->cache_lifetime = 0;
} else {
    //$smarty->debugging      = false;
    $smarty->caching        = true;
    $smarty->cache_lifetime = 120;
}
$smarty->assign('title', '标题');
$smarty->display('index.html');

views/index.html 这个模板里面,默认情况下,是这么写的。

<title>{{$title}}</title> 

关于smarty变量的定界符,这里需要特殊说明一下,就是smarty默认是使用{和}。而使用这个的时候,在html页面里面就不能内联的写出js和css的代码了,只能把对应的文件写到单独的文件里面去。这样做,是很不方便和智能的。所以,我们需要对定界符号进行修改,而修改成什么样,大家并没有统一的规范,苏南大叔这里改成了{{和}},事实上你改成其他也是可以的。记得修改完成后,把你的模板里面的对应位置都要做出修改即可。

蛮简单的吧,更多smarty的设置,请参见官方文档。 http://www.smarty.net/docs/zh_CN/

最后再ps一下:在smarty的使用过程中,可能会涉及下面的错误。

利用composer安装smarty - smarty_time

这种情况下,大家记得,使用php的函数date_default_timezone_set进行设置即可;不过这个问题实际上有些超出smarty的范围了,属于php的基础设置范畴了。这里就不展开讨论了。

大家可以在这里得到更多相关信息。https://doc.php.sh/zh/function.date-default-timezone-set.htmlhttps://doc.php.sh/zh/timezones.html

date_default_timezone_set('PRC');
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。