【转】將 PEAR 放進 CodeIgniter

之前写过一篇【 在CodeIgniter中使用PEAR类库的解决方法 】,今天又看到一篇文章,特地转过来。

我提到的思路的解决方法实际上相对复杂,同样是提供类库导入通道,我的思路是依据CI的Load机制来做,而本文的作者却另辟蹊径,采用了一种更简单的方法。实际上我们可以把这个问题想的再简单的一点,只要记住:“载入一个类库实际上就是最终只要能include/require这个文件就可以了”。

下面是作者原文:

將 PEAR 放進 CodeIgniter這個做法是參考此篇「Using Zend Framework with CodeIgniter」修改而來的。
事實上外掛Zend的需要性可能比PEAR還要高,我之所以要外掛PEAR來做是因為CI的分頁類好像有問題@_@,索性就直接使用PEAR的分頁類了,而且PEAR的分頁類還有Jumping和Sliding不同模式可選用,在某些情況下,PEAR的彈性可能比較高。however…看你喜不喜歡多掛一個做同樣事情的library而已。
一、下載PEAR函式庫必要的「PEAR核心檔」即可,然後再下載所需的類別套件,以我為例就是「Pager套件」,最終的資料夾結構大概長這樣

二、將PEAR放到你的applicaiton/libraries/中,在application/libraries/中建立一個新檔,並命名為PEAR.php的類別檔(注意與applicaiton/libraries/PEAR底下的PEAR.php是不一樣的,不要混淆了),內容如下:

if (!defined('BASEPATH')) {exit('No direct script access allowed');}
class CI_PEAR
{
 /**
  * Constructor
  *
  * @param string $class class name
  */
 function __construct($class = NULL)
 {
  // include path for PEAR library
  // alter it accordingly if you have put the 'PEAR' folder elsewhere
  ini_set('include_path',
  ini_get('include_path') . PATH_SEPARATOR . APPPATH . 'libraries/PEAR');

  if ($class)
  {
   require_once (string) $class . EXT;
   log_message('debug', "PEAR Class $class Loaded");
  }
  else
  {
   log_message('debug', "PEAR Class Initialized");
  }
 }

 /**
  * PEAR Class Loader
  *
  * @param string $class class name
  */
 function load($class)
 {
  require_once (string) $class . EXT;
  log_message('debug', "PEAR Class $class Loaded");
 }
}

三、在controllers中,你就可以這樣的使用

//注意,不必加上最後的.php
$this->pear->load('PEAR/Pager/Pager');
//設定分頁參數
$params = array(
    'mode'       => 'Jumping',
    'perPage'    => 3,
    'delta'      => 2,
    'itemData'   => array('a','b','c','d','e',[...omissis...],'z')
);
$pager = Pager::factory($params);
$data  = $pager->getPageData();
$links = $pager->getLinks();
 

原文地址: http://doublekai.org/blog/?p=658
另一篇参考文章: Using Zend Framework with CodeIgniter

Related posts:

Tags: , ,

Leave a Reply

You must be logged in to post a comment.

© Copyright 2010 LEMON’s BLOG - 黎明博客
Design by: styleshout | Colourise by: Theme Lab and Search Marketing | Customised by blog.lemonfz.com
Powered by WordPress 2.7 | Valid CSS | XHTML | 27 queries. 0.437 seconds.