热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

yii2smartyphp,YII2整合smarty

最近在研究YII2这个框架,主要研究了下,依赖注入(DI或者IOC)和事件(AOP),这个框架对于之前做过java编程的人来说无疑是最好的

最近 在研究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");

}访问自己的控制器就会跳转到自己定义的模版了:

2e83688766f23cdbbf77346df247f8bd.png

版权声明:本文为博主原创文章,未经博主允许不得转载。

原文:http://blog.csdn.net/gaoxuaiguoyi/article/details/46967207



推荐阅读
  • c语言自定义BOOL函数C语言没有BOOL类型变量boolean类型是C++所独有的由于使用BOOL类型可以使代码更具有可读性,很多编程者都在C中自己定义了类似的应用,一般方法有两 ... [详细]
  • 前端微服务二
    为了解决庞大的一整块后端服务带来的变更与扩展方面的限制,出现了微服务架构(Microservices):微服务是面向服务架构(SOA)的一种变体,把应用程序设计成一系列松耦合的细粒 ... [详细]
  • C语言是一个什么样的语言,为什么每个程序员都要学习
    对于大部分程序员,C语言是学习编程的第一门语言,很少有不了解C的程序员。C语言除了能让你了解编程的相关概念,带你走进编程的大门,还能让你明白程序的运行原理,比如,计算机的各个部件是 ... [详细]
  • phpmysql一键安装包,Mysql安装包
    本文目录一览:1、哪里有PHPMySQLDatabaseApacheServer一 ... [详细]
  • 【Modbus 】Modbus 协议
    Modbus协议简介Modbus协议是一项应用层报文传输协议,包括ASCII、RTU、TCP三种报文类型。标准的Modbus协议物理层接口有RS232、RS422 ... [详细]
  • JNI技术实践小结转自http:sett ... [详细]
  • iOS之富文本
    之前做项目时遇到一个问题:使用UITextView显示一段电影的简介,由于字数比较多,所以字体设置的很小,行间距和段间距也很小,一大段文字挤在一起看起来很别扭,想要把行间距调大,结 ... [详细]
  • nvmw安装,用于控制node版本;
    之前一直使用的是nodev2.2.0版本,挺说新版本的node解决了npm安装插件产生文件夹结构过深的问题,所以就想更新试试;上网一看才发现,尼玛的node已经到了6.+版本了,好 ... [详细]
  • mysql oneproxy稳定吗_Mysql 中间件 oneProxy总结
    建议使用之前把官方的文档全部通读一遍这里提供一个我的网盘地址oneproxy百度网盘0.先对oneproxy有个大概的了解,知道他所处的位置1.MySQL服务器创建t ... [详细]
  •  12.1微服务的原则 我们在第2章讨论过,微服务原则可以发挥什么样的作用。它们 ... [详细]
  • Smali代码注入
    以下的内容是对官方MIUIV4移植教程的补充,其中一些工具的使用就不在这里赘述,请大家参考官方教程。好的,话不多说,进入正题 ... [详细]
  • idea启动springmvc项目时报找不到类的解决方法
    这篇文章主要介绍了idea启动springmvc项目时报找不到类的解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值, ... [详细]
  • 本文目录一览:1、学习Python之后可以做什么工作?有哪些方向? ... [详细]
  • 起底▍Spring Boot/Cloud背后豪华的研发团队 ——独角兽公司Pivotal
    作者|纯洁的微笑编辑|梅花鹿36大数据已获得授权转载我们刚开始学习SpringBoot的时候肯定都会看到这么一句话:SpringBoot是由Pivotal团队提供的全 ... [详细]
  • Visual Studio 2015 开发 ASP.NET 5 有何变化?
    Visual Studio 2015 开发 ASP.NET 5 有何变化? ... [详细]
author-avatar
Timeless
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有