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 相关文章推荐
改进的IP计数器
Oct 09 PHP
?繁体转换的class
Oct 09 PHP
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装最快的解决办法
Aug 01 PHP
深入探讨:PHP使用数据库永久连接方式操作MySQL的是与非
Jun 05 PHP
解析PHP SPL标准库的用法(遍历目录,查找固定条件的文件)
Jun 18 PHP
PHP修改session_id示例代码
Jan 08 PHP
PHP弹出提示框并跳转到新页面即重定向到新页面
Jan 24 PHP
PHP采用curl模仿用户登陆新浪微博发微博的方法
Nov 07 PHP
php从数据库查询结果生成树形列表的方法
Apr 17 PHP
PHP抓取及分析网页的方法详解
Apr 26 PHP
php格式文件打开的四种方法
Feb 24 PHP
PHP实现常用排序算法的方法
Feb 05 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
php实现的数字验证码及数字运算验证码
2015/07/30 PHP
按给定几率进行随机抽取的js代码
2010/12/28 Javascript
javascript中日期转换成时间戳的小例子
2013/03/21 Javascript
javascript顺序加载图片的方法
2015/07/18 Javascript
深入学习JavaScript中的原型prototype
2015/08/13 Javascript
javascript巧用eval函数组装表单输入项为json对象的方法
2015/11/25 Javascript
原生JS简单实现ajax的方法示例
2016/11/29 Javascript
jQuery中ajax错误调试分析
2016/12/01 Javascript
jquery滚动条插件(可以自定义)
2016/12/11 Javascript
基于vue实现多引擎搜索及关键字提示
2017/03/16 Javascript
vue货币过滤器的实现方法
2017/04/01 Javascript
jQuery返回定位插件详解
2017/05/15 jQuery
基于js中的原型(全面讲解)
2017/09/19 Javascript
vue路由教程之静态路由
2019/09/03 Javascript
使用Vue生成动态表单
2019/11/26 Javascript
原生js实现二级联动菜单
2019/11/27 Javascript
jQuery实现中奖播报功能(让文本滚动起来) 简单设置数值即可
2020/03/20 jQuery
[01:35]2018年度CS GO最佳战队-完美盛典
2018/12/17 DOTA
给Python的Django框架下搭建的BLOG添加RSS功能的教程
2015/04/08 Python
编写Python小程序来统计测试脚本的关键字
2016/03/12 Python
python面向对象多线程爬虫爬取搜狐页面的实例代码
2018/05/31 Python
Python登录注册验证功能实现
2018/06/18 Python
django2.0扩展用户字段示例
2019/02/13 Python
python使用matplotlib画柱状图、散点图
2019/03/18 Python
对YOLOv3模型调用时候的python接口详解
2019/08/26 Python
Python实现JS解密并爬取某音漫客网站
2020/10/23 Python
python爬虫scrapy基本使用超详细教程
2021/02/20 Python
CSS3中的Media Queries学习笔记
2016/05/23 HTML / CSS
泰国办公用品购物网站:OfficeMate
2018/02/04 全球购物
新郎婚宴答谢词
2014/01/19 职场文书
传承焦裕禄精神思想汇报2014
2014/09/10 职场文书
夫妻房产协议书的格式
2014/10/11 职场文书
如何使用Python实现一个简易的ORM模型
2021/05/12 Python
Go语言实现Snowflake雪花算法
2021/06/08 Golang
Python+Appium自动化测试的实战
2021/06/30 Python
对讲机的最大通讯距离是多少
2022/02/18 无线电