CodeIgniter框架实现的整合Smarty引擎DEMO示例


Posted in PHP onMarch 28, 2019

本文实例讲述了CodeIgniter框架实现的整合Smarty引擎。分享给大家供大家参考,具体如下:

Smarty的模板机制很强大,一般情况下CI框架无需整合其他模板标签,因为PHP本身就是一种标签,简单易用。Codeigniter整合Smarty教程(我用的都是最新版本)如下:

第一步:下载Codeigniter最新版本:CodeIgniter框架源码
第二步:下载Smarty最新版本:Smarty引擎源码
第三步:具体配置

我已将本人整合好的代码上传,有兴趣的可以下载阅读。Codeigniter框架整合Smarty引擎DEMO 。

1、准备

将smarty拷贝到application/libraries下,然后再根目录下下新建templates,templates_c,config,cache目录,结构如下:

CodeIgniter框架实现的整合Smarty引擎DEMO示例

2、修改入口文件

在入口文件index.php中新增:

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

3、新建CI_Smarty.php

在libraries文件下新建CI_Smarty.php,写如下代码:

<?php
/**
* =======================================
* Created by PK Technology.
* Author: ZhiHua_W
* Date: 2016/10/31 0031
* Time: 上午 9:16
* Project: CI整合
* Power: CI框架整合smarty
* =======================================
*/
defined('BASEPATH') OR exit('No direct script access allowed');
require(APPPATH . 'libraries/smarty/Smarty.class.php');
class CI_Smarty extends Smarty
{
    public function __construct($template_dir = '', $compile_dir = '', $config_dir = '', $cache_dir = '')
    {
      parent::__construct();
      if (is_array($template_dir)) {
        foreach ($template_dir as $key => $value) {
          $this->$key = $value;
        }
      } else {
        //ROOT是Codeigniter在入口文件index.php定义的本web应用的根目录
        $this->template_dir = $template_dir ? $template_dir : ROOT . '/templates';
        $this->compile_dir = $compile_dir ? $compile_dir : ROOT . '/templates_c';
        $this->config_dir = $config_dir ? $config_dir : ROOT . '/config';
        $this->cache_dir = $cache_dir ? $cache_dir : ROOT . '/cache';
      }
    }
}

4、在controller中使用

在控制器Welcome.php中写入使用方法,代码如下:

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Welcome extends CI_Controller
{
    /**
     * Welcome constructor.
     * 写入构造函数,引入CI_Smarty类文件
     */
    public function __construct()
    {
      parent::__construct();
      $this->load->library('CI_Smarty');
    }
    /**
     * smarty测试函数
     */
    public function test()
    {
      $this->ci_smarty->assign('test', 'smarty');
      $this->ci_smarty->display('test.tpl');
    }
}

5、创建模版试图

在templates文件夹下创建test.tpl文件,写入如下代码:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Codeigniter整合Smarty测试</title>
</head>
<body>
这是 {$test} 测试
</body>
</html>

6、访问

至此,我们整合完毕,访问:http://localhost/Codeigniter_Smarty/index.php/Welcome/test即可看到测试结果。

希望本文所述对大家基于CodeIgniter框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP调用三种数据库的方法(1)
Oct 09 PHP
PHP获取当前文件所在目录 getcwd()函数
May 13 PHP
PHP学习之字符串比较和查找
Apr 17 PHP
探讨多键值cookie(php中cookie存取数组)的详解
Jun 06 PHP
使用PHP求两个文件的相对路径
Jun 20 PHP
mysql_connect localhost和127.0.0.1的区别(网络层阐述)
Mar 26 PHP
给WordPress的编辑后台添加提示框的代码实例分享
Dec 25 PHP
在php中设置session用memcache来存储的方法总结
Jan 14 PHP
php实现三级级联下拉框
Apr 17 PHP
Yii2增加验证码步骤详解
Apr 25 PHP
如何离线执行php任务
Feb 21 PHP
Vagrant(WSL)+PHPStorm+Xdebu 断点调试环境搭建
Dec 13 PHP
PHP微商城开源代码实例
Mar 27 #PHP
PHP简单验证码功能机制实例详解
Mar 27 #PHP
PHP判断访客是否手机端(移动端浏览器)访问的方法总结【4种方法】
Mar 27 #PHP
PHP实现数据四舍五入的方法小结【4种方法】
Mar 27 #PHP
PHP判断是否微信访问的方法示例
Mar 27 #PHP
PHP中localeconv()函数的用法
Mar 26 #PHP
PHP实现的支付宝支付功能示例
Mar 26 #PHP
You might like
mysql 中InnoDB和MyISAM的区别分析小结
2008/04/15 PHP
PHP下通过QRCode类库创建中间带网站LOGO的二维码
2014/07/12 PHP
CentOS下与Apache连接的PHP多版本共存方案实现详解
2015/12/19 PHP
php微信公众号开发(2)百度BAE搭建和数据库使用
2016/12/15 PHP
php字符集转换
2017/01/23 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
2017/12/21 PHP
原生JS实现Ajax通过GET方式与PHP进行交互操作示例
2018/05/12 PHP
Javascript中的数学函数集合
2007/05/08 Javascript
面向对象Javascript核心支持代码分享
2012/05/23 Javascript
js插件方式打开pdf文件(浏览器pdf插件分享)
2013/12/20 Javascript
jQuery实现自动滚动到页面顶端的方法
2015/05/22 Javascript
基于jquery animate操作css样式属性小结
2015/11/27 Javascript
jQuery+jsp下拉框联动获取本地数据的方法(附源码)
2015/12/03 Javascript
4种JavaScript实现简单tab选项卡切换的方法
2016/01/06 Javascript
jQuery基于muipicker实现仿ios时间选择
2016/02/22 Javascript
前端开发之CSS原理详解
2017/03/11 Javascript
JS同步、异步、延迟加载的方法
2018/05/05 Javascript
微信小程序登录换取token的教程
2018/05/31 Javascript
微信小程序中转义字符的处理方法
2019/03/28 Javascript
JavaScript怎样在删除前添加确认弹出框?
2019/05/27 Javascript
js实现聊天对话框
2020/02/08 Javascript
python 实现得到当前时间偏移day天后的日期方法
2018/12/31 Python
解决Django layui {{}}冲突的问题
2019/08/29 Python
Python退出时强制运行一段代码的实现方法
2020/04/29 Python
python把一个字符串切开的实例方法
2020/09/27 Python
pandas将list数据拆分成行或列的实现
2020/12/13 Python
意大利运动服减价商店:ScontoSport
2020/03/10 全球购物
考试没考好检讨书
2014/01/31 职场文书
储备店长岗位职责
2015/04/14 职场文书
团拜会主持词
2015/07/04 职场文书
2015暑假假期总结
2015/07/13 职场文书
财务人员入职担保书
2015/09/22 职场文书
2019年个人工作总结范文
2019/03/25 职场文书
前端学习——JavaScript原生实现购物车案例
2021/03/31 Javascript
用Python将库打包发布到pypi
2021/04/13 Python
码云(gitee)通过git自动同步到阿里云服务器
2022/12/24 Servers