yii2 smarty php,YII2 整合smarty
最近 在研究YII2这个框架,主要研究了下,依赖注入(DI或者IOC)和事件(AOP),这个框架对于之前做过java编程的人来说无疑是最好的,因为它的风格和Spring结构是一样的设计,本人以前就是从事java开发的,所以接触了这个框架之后很是喜欢,用着很顺手,比CI框架好了很多,TP虽然也是面向对象的,但是跟YII比起来,代码方面还是差了点,YII简洁的代码,用着很舒服,因为YII放弃了对smarty的整合,使用原生的PHP,提高了编译效率,但是,毕竟前端和后端是分开的,使用smarty对前端来说是最好的选择,整合smarty官方建议直接使用composer下载,但是我讨厌这样于是自定义进行了整合:
首先,下载smarty模版百度一下,下载一个吧,这里就不做连接了。
将smarty压缩包解压放到一个自己定义的扩展文件夹,我放在了YII默认的 frontend/libs/smarty(自己创建)下面,然后在libs下面定义一个smarty的子类来扩展smarty为
CSmarty.php
namespace frontend\libs;
use Yii;
define("BASEPATH",\Yii::$app->basePath);
require_once \Yii::$app->basePath."/libs/smarty/Smarty.class.php";
define('SMARTY_TMPDIR',BASEPATH.'/views/templates/');//放置模版的目录 //自己创建
define('SMARTY_CACHEDIR',BASEPATH . '/views/template_cache/');//缓存文件目录
define('LIFTTIME',1800);
define('SMARTY_DLEFT', '
define('SMARTY_DRIGHT', '}>');//右限定符
class CSmarty extends \Smarty{
protected static $_instance = NULL;
static function getInstance(){
if(self::$_instance == NULL){
self::$_instance = new CSmarty();
}
return self::$_instance;
}
function __construct(){
parent::__construct();
$this->template_dir = SMARTY_TMPDIR;
$this->compile_dir = SMARTY_COMPILE;
$this->config_dir = SMARTY_CONFIG;
$this->compile_check = true;
$this->caching = 1;
$this->cache_dir = SMARTY_CACHEDIR;
$this->left_delimiter = SMARTY_DLEFT;
$this->right_delimiter = SMARTY_DRIGHT;
$this->cache_lifetime = LIFTTIME;
}
function init(){
}
}
配置frontend/config/main.php
$params = array_merge(
require(__DIR__ . '/../../common/config/params.php'),
require(__DIR__ . '/../../common/config/params-local.php'),
require(__DIR__ . '/params.php'),
require(__DIR__ . '/params-local.php')
);
//配置自己需要的组建
return [
'id' => 'app-frontend',
'basePath' => dirname(__DIR__),
'bootstrap' => ['log'],
'controllerNamespace' => 'frontend\controllers',
'components' => [
'user' => [
'identityClass' => 'common\models\User',
'enableAutoLogin' => true,
],
'log' => [
'traceLevel' => YII_DEBUG ? 3 : 0,
'targets' => [
[
'class' => 'yii\log\FileTarget',
'levels' => ['error', 'warning'],
],
],
],
'errorHandler' => [
'errorAction' => 'site/error',
],
'cache'=>[
'class' =>'yii\\caching\\FileCache'
],
'mailer'=>[
'mailer' =>'yii\\mail\\BaserMailer'
],
'urlManager' => [
'class' => 'yii\web\urlManager',
'enablePrettyUrl' => true,
],
'smarty'=>[
'class'=>'frontend\libs\CSmarty'//将自己定义CSmarty的命名空间放在这里
],
],
'params' => $params,
];
最后一步就可以引用smarty了
public function actionTest(){
$smarty = \Yii::$app->smarty;
$smarty->assign('name','HelloSmarty');
$smarty->display("index.html");
}访问自己的控制器就会跳转到自己定义的模版了:
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文:http://blog.csdn.net/gaoxuaiguoyi/article/details/46967207
yii2 smarty php,YII2 整合smarty相关推荐
- php smarty ci,CI整合Smarty,cismarty_PHP教程
CI整合Smarty,cismarty 1.到相应的站点下载smarty模板: 2.将源代码中的libs目录复制到项目的libraries目录下,改名为smarty3.0 3.在项目目录的librar ...
- yii2 smarty php,yii框架整合Smarty
必须说明的是,本教程里所有的YII框架开发网站项目是整合Smarty来开发的,Smarty作为最成熟使用最多的模板之一,相信大家都比较熟悉.如果还有的同学不是很熟悉,可以参考Smarty教程.不过就算 ...
- CodeIgniter_2.2.0整合smarty模板引擎
CodeIgniter_2.2.0整合smarty模板引擎 转载于:https://blog.51cto.com/murongwenxian/1605204
- php ci框架 模板引擎,详解CodeIgniter框架实现的整合Smarty引擎DEMO
CodeIgniter框架实现的整合Smarty引擎DEMO示例 本文实例讲述了CodeIgniter框架实现的整合Smarty引擎.分享给大家供大家参考,具体如下: Smarty的模板机制很强大,一 ...
- yaf框架整合smarty
yaf的版本为3.3.2 百度出来的教程可能因为版本原因,均会报错: Fatal error: Declaration of Smarty_Adapter::getScriptPath() must ...
- ecshop的smarty库还原成smarty原生库方法
写过ecshop模板的人都晓得,他们是用所谓的dwt的文件来嵌套lbi文件进行模板的彼此调用.在咱们调取数据的时分,ecshop的默许模板只提供给咱们几个简略的句子进行调用,那么有没有办法能够把这个精 ...
- Smarty核心内容:Smarty基本安装与调试
参考网址:http://www.php100.com/manual/smarty/ Smarty核心内容:Smarty基本安装与调试 Smarty核心内容:保留变量 Smarty核心内容:变量调节器 ...
- ecshop smarty php,ecshop的smarty基础普及知识
ecshop板制造比拟中心的其实就是变量的运用,由于这些就是数据的底子,想从数据库里获取数据并显现在界面就有必要运用smarty来展现,下面是关于smarty的分析和运用. Smarty是一个php模 ...
- php smarty加载失败,smarty模板无法加载如何解决?
相同的模板,但是test.php可以加载,运行后出结果,但是使用与test.php同一个路径下的commetn.php确提示无法加载模板comment.tpl,请问如何解决?谢谢. 文件路径截图: s ...
- php smarty模板配置,封装Smarty模板的配置方法
封装Smarty模板的配置方法 Smarty模板的配置方法是应用Smaty模板的关键,但是用户不能在每次使用Smarty时都写一遍配置文件.这样不仅使服务器增加了负担,更主要的是使程序的可读性变差,为 ...
最新文章
- 微课堂 | 典典养车COO:暴力运营美学,典典养车如何一年内拿到500万用户(今晚8点开始)...
- 数据全裸时代,你的隐私有多容易获取?
- php 获取某个月的周一
- 逼急了自己人都坑,腾讯内部上演吃鸡大战
- 说一下你对多态的理解?_如何去理解java中的多态?从jvm角度分析也许让你更清晰...
- pyhton读取json格式的气象数据
- 基于tensorflow 1.x 的bert系列预训练模型工具
- 天梯— A-B(C语言)
- 手机输入法带拼音声调_最好用的输入法,百度输入法带你体验更智能的拼音输入法...
- 第九届蓝桥杯国赛C++B组口胡题解
- wordpress插件_5个最佳WordPress企业目录插件
- 信息与网络安全 Diffie-Hellman密匙交换算法 题目练习
- html canvas画背景图片,HTML5 canvas画布
- PS基础--水平翻转图像
- Google Voice 虚拟号码
- [Unity3d]游戏中子弹碰撞的处理
- adblock plus 广告过滤器的使用
- 利用内网穿透实现无固定IP调试支付回调
- 超详细的ROC曲线绘制教程
- 公司企业部门英文名称
热门文章
- php和python的选择排序算法,基于python的七种经典排序算法的详细介绍
- 线性调频信号学习笔记
- python底层原理讲解_python底层原理
- 文件描述符表,打开文件表,索引节点表
- 亿图图示11.0新版本全新上线 助力个人及企业降本增效
- 1.数独游戏(生成题目解唯一)
- MIKE与SMS网格的区别——个人感受
- Python爬取链家成都二手房源信息 asyncio + aiohttp 异步爬虫实战
- 天然气故障代码大全_天然气燃气表显示的数字代表什么(错误代码办法)
- f分布表完整图a=0.01_桥梁横向分布系数计算方法及案例详解