当前位置:首页 > 编程教程 > php技术文章 > CodeIgniter框架实现的整合Smarty引擎DEMO示例

详解CodeIgniter框架实现的整合Smarty引擎DEMO

  • 发布时间:
  • 作者:码农之家
  • 点击:158

这篇文章主要知识点是关于CodeIgniter、整合、Smarty引擎、的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

PHP7从入门到精通:教学版
  • 类型:PHP7大小:426 MB格式:PDF作者:刘增杰、张工厂
立即下载

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

本文实例讲述了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程序设计有所帮助。

以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。

PHP 相关电子书
学习笔记
网友NO.952253

php框架CodeIgniter使用redis的方法分析

本文实例讲述了php框架CodeIgniter使用redis的方法。分享给大家供大家参考,具体如下: 1、安装redis 首先计算机上必须已经装了redis服务(redis数据库)并运行,详见另一篇文章://www.jb51.net/article/138173.htm 2、安装phpredis ① 下载 项目地址:https://github.com/phpredis/phpredis(可以不管这个),这里面提到,windows版本的phpredis要自己编译,当然我们不能这么蛮干。 说下我走过的弯路,一开始从http://windows.php.net/downloads/pecl/snaps/redis/20160319/(这个也可以不管)下载了,一直都弄不好,其实这个vc14是7.0版本的php,我们需要的是7.1版本的,所以一直就是错,找不到问题所在,直到找到这个: http://pecl.php.net/package-stats.php 对应的版本点进去: http://pecl.php.net/package/redis/3.1.1/windows 下载7.1对应的版本。 ② 安装 将下载解压的 php_redis.dll 放在php解释器的ext,会发现mysql等的模……

网友NO.289995

CodeIgniter开发实现支付宝接口调用的方法示例

本文实例讲述了CodeIgniter开发实现支付宝接口调用的方法。分享给大家供大家参考,具体如下: 准备: 1、alipay官方下载最新接口类库 2、解压后,将目录"\即时到账交易接口-create_direct_pay_by_user\demo\create_direct_pay_by_user-PHP-UTF-8\lib"复制到 application\third_party目录下,并改名lib为alipay 3、同样复制cacert.pem文件到"application\third_party\alipay"目录下,这个不是必须的,在走ssl通道时用到的证书 代码实例: 以下只列出controller部分代码,view与model根据自己实际需要去编写 ?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');/** * alipy支付接口 * @author onwulc@163.com * */class Alipay extends CI_Controller { private $alipay_config; function __construct(){ parent::__construct(); $this-_init_config(); $this-load-helper('url'); } function index(){ $this-load-view('alipay');//装载支付视图页面,post到do_alipay } function do_alipay()……

网友NO.388838

CodeIgniter整合Smarty的方法详解

本文实例讲述了CodeIgniter整合Smarty的方法。分享给大家供大家参考,具体如下: CI3.0.2发布后感觉模板类还是不怎么好用,而且不能编译。Smarty功能强大,用习惯了Smarty标签,一般难以放弃,而且,是可以编译文件执行,速度快,我们可以把它们整合使用,弥补CI的模板功能的不足。我们整合使用的是CI版本3.0.3及 Smarty版本3.1.27。下面描述整合过程。 1、下载smarty-3.1.27 2 、解压smarty-3.1.27到CI项目中的application\libraries下面,其他的文件删除。 3、 在application\libraries目录下创建Ci_smarty.php文件,代码如下: if ( ! defined('BASEPATH')) exit('No direct script access allowed');require(APPPATH.'libraries/smarty-3.1.27/libs/Smarty.class.php');class Ci_smarty extends Smarty { protected $ci; public function __construct() { parent::__construct(); $this-ci = $this-ci-load-config('smarty');//加载smarty的配置文件 $this-cache_lifetime =$this-……

网友NO.718093

PHP CodeIgniter分页实例及多条件查询解决方案(推荐)

最近在用CI框架的时候,用了CI的分页类,以前是用前端整分页,这次干脆用用框架自带的,自己这个健忘的脑袋,还是记录一下吧。 因为页面中有条件筛选的表单,所以想要完成的效果就是,输入条件后,分页跳转之后能维持所输入的条件。想了一下,自己的思路如下代码吧。 controller 代码 class Monitors extends CI_Controller {public function warning(){ $config= array(); $config['per_page'] = 15; //每页显示的数据数 $current_page = intval($this-input-get("per_page")); //获取当前分页页码数 $status=$this-input-get("filter-status",TRUE); $level=$this-input-get('filter-level',TRUE); $timestamp=$this-input-get('filter-timestamp',TRUE); $all = $this-monitors_m-getAllData($current_page,$config['per_page'],$status,$timestamp,$level); //这里返回的有总条数和具体的数据,根据自己的情况略加修改即可 $data['allevent'] = $all['content']; $config['total_rows'] = $……

<
1
>

Copyright 2018-2020 www.xz577.com 码农之家

版权投诉 / 书籍推广 / 赞助:520161757@qq.com