#1 jake

在SpeedPHP框架开发中,开发者可以使用自定义类库,其中包括第三方类库和开发者自行编写的类。

类库代码建议写在单独的PHP文件中,建议类名与该PHP文件名相同,如fb类的文件名是fb.php。

类库文件可以放置在以下多个位置:


  • 应用程序目录下(APP_PATH)的include目录,如无该目录可以新建include目录。该目录在配置include_path中可以配置和增加。include目录建议放置第三方类库和开发者自行定义的类。
  • 应用程序目录下(APP_PATH)的model目录(模型类所在目录)。model目录建议放置与应用程序业务关系较密切的类。
  • 框架文件夹(SP_PATH)的Extensions目录。框架Extensions目录建议放置比较通用的类库文件。

当类库文件名和类名不相同的时候,就需要先import类库文件,然后再使用spClass来实例化该类。


包含位置include_path

在应用程序配置中,include_path是一个数组,默认只有一个值——就是应用程序目录下的include目录。

'include_path' => array(
        APP_PATH.'/include',
), // 用户程序扩展类载入路径
框架核心函数import和spClass在寻找载入文件和类定义文件的时候,都会搜索include_path定义的路径,开发者可以对include_path进一步配置,以达到载入更多公用类的目的。
'include_path' => array(
        APP_PATH.'/include', APP_PATH.'/myinclude',
), // 用户程序扩展类载入路径

上面,我们加入了myinclude的目录作为第二个包含路径,然后它的作用就和include一样了。


自定义类库演示

下面,我们以FirePHP调试类和lastRss类作为例子,介绍如果在框架中引入自定义类来使用。

例子下载:diyclass[1].zip


首先,需要的几个类,都被放置到应用程序目录下的include目录中,主类文件分别是fb.php和lastRSS.php

dev_diy_class_dir2[1].jpg

在控制器中,我们通过spClass来调用fb类和lastRSS类
class main extends spController
{
        function index(){
                // 实例化lastRss类
                $rss = spClass('lastRss');
                // 通过lastRss获取rss数据
                $data = $rss->Get('http://speedphp.com/feed');
               
                // 实例化firephp类
                $fb = spClass('fb');
                // 调试$data变量
                $fb->info($data);
                // 输出Hello World文字
                $fb->log('Hello World');
               
               
                $this->display('test.html');
        }

}
然后,可以看到显示

dev_diy_class_result[1].jpg
FirePHP是附加到火狐浏览器著名扩展FireBug上面的一个PHP调试工具,服务器端可以通过firephp类来进行调试,火狐浏览器中安装了FireBug和FirePHP即可接收调试数据。
FirePHP的更多资料,可以参考其官网:http://www.firephp.org/

2012-08-05 11:51:04