最近 在研究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相关推荐

  1. php smarty ci,CI整合Smarty,cismarty_PHP教程

    CI整合Smarty,cismarty 1.到相应的站点下载smarty模板: 2.将源代码中的libs目录复制到项目的libraries目录下,改名为smarty3.0 3.在项目目录的librar ...

  2. yii2 smarty php,yii框架整合Smarty

    必须说明的是,本教程里所有的YII框架开发网站项目是整合Smarty来开发的,Smarty作为最成熟使用最多的模板之一,相信大家都比较熟悉.如果还有的同学不是很熟悉,可以参考Smarty教程.不过就算 ...

  3. CodeIgniter_2.2.0整合smarty模板引擎

    CodeIgniter_2.2.0整合smarty模板引擎 转载于:https://blog.51cto.com/murongwenxian/1605204

  4. php ci框架 模板引擎,详解CodeIgniter框架实现的整合Smarty引擎DEMO

    CodeIgniter框架实现的整合Smarty引擎DEMO示例 本文实例讲述了CodeIgniter框架实现的整合Smarty引擎.分享给大家供大家参考,具体如下: Smarty的模板机制很强大,一 ...

  5. yaf框架整合smarty

    yaf的版本为3.3.2 百度出来的教程可能因为版本原因,均会报错: Fatal error: Declaration of Smarty_Adapter::getScriptPath() must ...

  6. ecshop的smarty库还原成smarty原生库方法

    写过ecshop模板的人都晓得,他们是用所谓的dwt的文件来嵌套lbi文件进行模板的彼此调用.在咱们调取数据的时分,ecshop的默许模板只提供给咱们几个简略的句子进行调用,那么有没有办法能够把这个精 ...

  7. Smarty核心内容:Smarty基本安装与调试

    参考网址:http://www.php100.com/manual/smarty/ Smarty核心内容:Smarty基本安装与调试 Smarty核心内容:保留变量 Smarty核心内容:变量调节器 ...

  8. ecshop smarty php,ecshop的smarty基础普及知识

    ecshop板制造比拟中心的其实就是变量的运用,由于这些就是数据的底子,想从数据库里获取数据并显现在界面就有必要运用smarty来展现,下面是关于smarty的分析和运用. Smarty是一个php模 ...

  9. php smarty加载失败,smarty模板无法加载如何解决?

    相同的模板,但是test.php可以加载,运行后出结果,但是使用与test.php同一个路径下的commetn.php确提示无法加载模板comment.tpl,请问如何解决?谢谢. 文件路径截图: s ...

  10. php smarty模板配置,封装Smarty模板的配置方法

    封装Smarty模板的配置方法 Smarty模板的配置方法是应用Smaty模板的关键,但是用户不能在每次使用Smarty时都写一遍配置文件.这样不仅使服务器增加了负担,更主要的是使程序的可读性变差,为 ...

最新文章

  1. 微课堂 | 典典养车COO:暴力运营美学,典典养车如何一年内拿到500万用户(今晚8点开始)...
  2. 数据全裸时代,你的隐私有多容易获取?
  3. php 获取某个月的周一
  4. 逼急了自己人都坑,腾讯内部上演吃鸡大战
  5. 说一下你对多态的理解?_如何去理解java中的多态?从jvm角度分析也许让你更清晰...
  6. pyhton读取json格式的气象数据
  7. 基于tensorflow 1.x 的bert系列预训练模型工具
  8. 天梯— A-B(C语言)
  9. 手机输入法带拼音声调_最好用的输入法,百度输入法带你体验更智能的拼音输入法...
  10. 第九届蓝桥杯国赛C++B组口胡题解
  11. wordpress插件_5个最佳WordPress企业目录插件
  12. 信息与网络安全 Diffie-Hellman密匙交换算法 题目练习
  13. html canvas画背景图片,HTML5 canvas画布
  14. PS基础--水平翻转图像
  15. Google Voice 虚拟号码
  16. [Unity3d]游戏中子弹碰撞的处理
  17. adblock plus 广告过滤器的使用
  18. 利用内网穿透实现无固定IP调试支付回调
  19. 超详细的ROC曲线绘制教程
  20. 公司企业部门英文名称

热门文章

  1. php和python的选择排序算法,基于python的七种经典排序算法的详细介绍
  2. 线性调频信号学习笔记
  3. python底层原理讲解_python底层原理
  4. 文件描述符表,打开文件表,索引节点表
  5. 亿图图示11.0新版本全新上线 助力个人及企业降本增效
  6. 1.数独游戏(生成题目解唯一)
  7. MIKE与SMS网格的区别——个人感受
  8. Python爬取链家成都二手房源信息 asyncio + aiohttp 异步爬虫实战
  9. 天然气故障代码大全_天然气燃气表显示的数字代表什么(错误代码办法)
  10. f分布表完整图a=0.01_桥梁横向分布系数计算方法及案例详解