Codeigniter中集成smarty和adodb的方法
发布:smiling 来源: PHP粉丝网 添加日期:2021-07-13 09:46:42 浏览: 评论:0
这篇文章主要介绍了Codeigniter中集成smarty和adodb的方法,结合实例形式分析了Codeigniter库的使用技巧,需要的朋友可以参考下。
本文实例讲述了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还不太了解吧,等深入一些,再看看有没有解决办法,不过至少目前这个可以工作了。
Tags: Codeigniter smarty adodb
相关文章
- ·CodeIgniter3.0+框架自定义异常处理的方法介绍(2020-02-08)
- ·解决Codeigniter不能上传rar和zip压缩包问题(2020-10-19)
- ·CodeIgniter框架中_remap()使用方法2例(2020-10-20)
- ·CI(CodeIgniter)框架中的增删改查操作(2021-02-11)
- ·CodeIgniter启用缓存和清除缓存的方法(2021-02-13)
- ·让CodeIgniter数据库缓存自动过期的处理的方法(2021-02-13)
- ·Codeigniter生成Excel文档的简单方法(2021-02-13)
- ·Codeigniter+PHPExcel实现导出数据到Excel文件(2021-02-13)
- ·Codeigniter实现智能裁剪图片的方法(2021-02-13)
- ·Codeigniter整合Tank Auth权限类库详解(2021-02-18)
- ·新浪SAE云平台下使用codeigniter的数据库配置(2021-02-18)
- ·Codeigniter实现处理用户登录验证后的URL跳转(2021-02-18)
- ·让codeigniter与swfupload整合的最佳解决方案(2021-02-18)
- ·Codeigniter实现多文件上传并创建多个缩略图(2021-02-18)
- ·让CodeIgniter的ellipsize()支持中文截断的方法(2021-02-18)
- ·CodeIgniter框架过滤HTML危险代码(2021-02-18)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)