在CodeIgniter中使用Flourish类库

Flourish并不是一个PHP框架,它是一系列类的集合,能够帮助我们解决PHP开发中遇到的很多问题,提供了诸如数据库抽象层、ORM、图片处理、验证、输入输出、邮件发送、日期、数字等一系列实用的类。

我们可以从Github上获取Flourish最新版的源码,Flourish的结构很简单,所有类都在一个目录下,并且以f开头作为类名,不管是一个新项目还是一个已有项目,我们都可以考虑使用Flourish作为扩展,Flourish可以很容易地和其他框架或类库一起工作,下面将介绍怎样把Flourish集成到CodeIgniter框架中使用,我们主要面对的是怎样autoload Flourish类的问题。

我们把下载的类文件放在application/libraries/flouris目录下,并在application/libraries目录下新建Flourish.php文件:

 1 <?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
 2 /**
 3  * Flourish Autoload Class
 4  *
 5  * Autoload Flourish classes by spl_autoload_register
 6  *
 7  * @package        CodeIgniter
 8  * @subpackage    Libraries
 9  * @category    Libraries
10  * @author        fineen.chen@gmail.com
11  */
12 class Flourish
13 {
14     /**
15      * Constructor - register autoload function
16      */
17     public function __construct()
18     {
19         spl_autoload_register('Flourish::load');
20     }
21     
22     // --------------------------------------------------------------------
23     
24     /**
25      * Autoload function
26      *
27      * @access    public
28      * @param    string    $class
29      * @return    boolean
30      */
31     static public function load($class)
32     {
33         if (strpos($class, 'f') !== 0)
34         {
35             return FALSE;
36         }
37         
38         $flourish_root = APPPATH . 'libraries/flourish/';
39         $file = $flourish_root . $class . '.php';
40         $file = str_replace('/', DIRECTORY_SEPARATOR, $file);
41         if (is_file($file))
42         {
43             require $file;
44             return TRUE;
45         }
46         
47         return FALSE;
48     }
49 }
50 /* End of file Flourish.php */
51 /* Location: ./application/libraries/Flourish.php */

在控制器中测试一下:

 1 <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
 2 
 3 class Welcome extends CI_Controller {
 4 
 5     public function index()
 6     {
 7         $this->load->library('flourish');
 8         $time1 = new fTime('now');
 9         echo $time1->format('H:i:s');
10     }
11 }

这样我们在需要使用Flourish类库的时候调用$this->load->library('flourish');就可以了,或者使用自动加载,在application/config/autoload.php修改$autoload['libraries'] = array('flourish');

posted @ 2013-03-07 09:25  陈小飞  阅读(358)  评论(0编辑  收藏  举报