在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');