Codeigniter中集成smarty和adodb的方法


Posted in PHP onMarch 04, 2016

本文实例讲述了Codeigniter中集成smarty和adodb的方法。分享给大家供大家参考,具体如下:

在CodeIgniter中要写自己的库,就需要写两个文件,一个是在application/init下面的init_myclass.php文件(如果没有init目录,自己创建)。另外一个就是在application/libraries目录下创建myclass.php文件。

这里myclass是你的类名。一些规则大家看手册就好了,我这里直接就说步骤了。

1)在application/libraries下分别创建mysmarty.php和adodb.php
mysmarty.php文件的内容如下:

<?php
// load Smarty library
require('Smarty/Smarty.class.php');
// The setup.php file is a good place to load
// required application library files, and you
// can do that right here. An example:
// require('guestbook/guestbook.lib.php');
class MySmarty extends Smarty {
 function MySmarty()
 {
    // Class Constructor.
    // These automatically get set with each new instance.
    $this->Smarty();
    $basedir=dirname(__FILE__);
    $this->template_dir = "$basedir/templates/";
    $this->compile_dir = "$basedir/templates_c/";
    $this->config_dir  = "$basedir/configs/";
    $this->cache_dir  = "$basedir/cache/";
    //$this->compile_check = true;
    //this is handy for development and debugging;never be used in a production environment.
    //$smarty->force_compile=true;
    $this->debugging = false;
    $this->cache_lifetime=30;
    $this->caching = 0; // lifetime is per cache
    //$this->assign('app_name', 'Guest Book');
 }
}
?>

文件路径根据具体情况修改,文件的的路径是相对你的网站的主目录开始的,而不是当前文件的当前目录,比如上面的require('Smarty/Smarty.class.php');不是相对application/libraries目录,而是相对$_SERVER['DOCUMENT_ROOT']目录。

adodb.php文件的内容如下:

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
class Adodb
{
  function Adodb()
  {
    //$dsn="dbdriver://username:password@server/database"
    $dsn = 'mysql://user:password@localhost/xxxx';
    require_once("adodb/adodb.inc".EXT);
    $this->adodb =& ADONewConnection($dsn);
    $this->adodb->Execute("set NAMES 'utf8'"); 
  }
}
?>

2)在application/init目录下分别创建init_adodb.php和init_mysmarty.php。

init_adodb.php文件内容如下:

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
$obj =& get_instance();
$obj->adodb = new Adodb($obj);
$obj->ci_is_loaded[] = 'adodb';

init_mysmarty.php文件内容如下:

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
if ( ! class_exists('MySmarty'))
{
  require_once(APPPATH.'libraries/mysmarty'.EXT);
}
$obj =& get_instance();
$obj->mysmarty = new MySmarty();
$obj->ci_is_loaded[] = 'mysmarty';
?>

3)使用他们
在application/controllers目录下创建一个你需要的文件,你可以这样来使用adodb和smarty。

<?php
class Test extends Controller {
 function Test()
 {
  parent::Controller(); 
  $this->load->library('mysmarty');
  $this->load->library('adodb');
 }
 function index()
 {
 $this->load->library('adodb');
 $row = $this->adodb->adodb->getrow('SELECT * FROM admin');
    $this->mysmarty->assign("row",$row);
    $this->mysmarty->display("test.tpl");
 }
}
?>

我也不知道这里为什么需要两次adodb,按照官方的做法应该只需要一次,但是他的方法在我这里有错误。可能是我对CodeIgniter还不太了解吧,等深入一些,再看看有没有解决办法。不过至少目前这个可以工作了。

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
php mssql 日期出现中文字符的解决方法
Mar 10 PHP
PHP利用REFERER根居访问来地址进行页面跳转
Sep 28 PHP
php在apache环境下实现gzip配置方法
Apr 02 PHP
常见的四种POST 提交数据方式(小总结)
Oct 08 PHP
WordPress用户登录框密码的隐藏与部分显示技巧
Dec 31 PHP
ThinkPHP框架安全实现分析
Mar 14 PHP
PHP strip_tags() 去字符串中的 HTML、XML 以及 PHP 标签的函数
May 22 PHP
Yii2结合Workerman的websocket示例详解
Sep 10 PHP
Centos7 Yum安装PHP7.2流程教程详解
Jul 02 PHP
Yii框架的redis命令使用方法简单示例
Oct 15 PHP
Laravel框架处理用户的请求操作详解
Dec 20 PHP
php7连接MySQL实现简易查询程序的方法
Oct 13 PHP
PHP常用技巧汇总
Mar 04 #PHP
将PHP程序中返回的JSON格式数据用gzip压缩输出的方法
Mar 03 #PHP
PHP的数组中提高元素查找与元素去重的效率的技巧解析
Mar 03 #PHP
CodeIgniter针对数据库的连接、配置及使用方法
Mar 03 #PHP
CodeIgniter表单验证方法实例详解
Mar 03 #PHP
PHP6新特性分析
Mar 03 #PHP
php轻松实现文件上传功能
Mar 03 #PHP
You might like
发挥语言的威力--融合PHP与ASP
2006/10/09 PHP
我的论坛源代码(五)
2006/10/09 PHP
PHP正则删除HTML代码中宽高样式的方法
2017/06/12 PHP
浅谈Laravel核心解读之Console内核
2018/12/02 PHP
Jquery下EasyUI组件中的DataGrid结果集清空方法
2014/01/06 Javascript
js常用自定义公共函数汇总
2014/01/15 Javascript
jQuery设置与获取HTML,文本和值的简单实例
2014/02/26 Javascript
JS 弹出层 定位至屏幕居中示例
2014/05/21 Javascript
javascript学习笔记(三)BOM和DOM详解
2014/09/30 Javascript
jQuery应用之jQuery链用法实例
2015/01/19 Javascript
jQuery的one()方法用法实例
2015/01/19 Javascript
解决js图片加载时出现404的问题
2020/11/30 Javascript
Bootstrap每天必学之面板
2015/11/30 Javascript
基于jQuery实现仿51job城市选择功能实例代码
2016/03/02 Javascript
原生js编写2048小游戏
2017/03/17 Javascript
javascript将json格式数组下载为excel表格的方法
2017/12/22 Javascript
详解vue项目打包步骤
2019/03/29 Javascript
Javascript confirm多种使用方法解析
2020/09/25 Javascript
如何使用python爬取csdn博客访问量
2016/02/14 Python
django上传图片并生成缩略图方法示例
2017/12/11 Python
TensorFlow损失函数专题详解
2018/04/26 Python
利用python开发app实战的方法
2019/07/09 Python
Python整数与Numpy数据溢出问题解决
2019/09/11 Python
Django静态资源部署404问题解决方案
2020/05/11 Python
Python3 ffmpeg视频转换工具使用方法解析
2020/08/10 Python
python中操作文件的模块的方法总结
2021/02/04 Python
荷兰鞋类购物网站:Donelli
2019/05/24 全球购物
学生档案自我鉴定
2013/10/07 职场文书
信息管理员岗位职责
2013/12/01 职场文书
《学会合作》教学反思
2014/04/12 职场文书
2014年度个人工作总结
2014/11/07 职场文书
报案材料怎么写
2015/05/25 职场文书
微观世界观后感
2015/06/10 职场文书
Python装饰器的练习题
2021/11/23 Python
SQL Server删除表中的重复数据
2022/05/25 SQL Server
输入框跟随文字内容适配宽实现示例
2022/08/14 Javascript