SpeedPHP框架中,除了核心提供的大部分日常使用的开发功能外,还可以通过第三方类库和扩展功能的方式,增加更个性化和更特殊的功能。
第三方类库
一般而言,在框架开发中使用的非框架功能,都可以称作第三方类库。第三方类库的使用非常简单,直接放置到应用程序目录(APP_PATH)下include目录中即可通过import或spClass的方式来载入和调用。这里要注意几点:
* 第三方类库除了类定义外,还包括自定义函数库,自定义函数一般通过import来载入函数定义文件。假设有个getdate的函数定义(函数体,即function getdate{})存在APP_PATH/include/myfunc.php文件中,那么在应用程序中(model或controller中)即可import("myfunc.php");然后调用getdate函数。
* 第三方类库的类,如果希望使用spClass载入,则需要类名与文件名相同。如文件名与类名不相同,则需要先import类定义文件,然后在通过spClass来初始化类。
* 类库和自定义函数库,存放的位置默认在应用程序目录的include目录中(该目录需要开发者建立)。这是在配置include_path中定义的。通过增加和修改include_path配置,可以增加多个类库存放的目录——方便一些不能修改目录的多程序共用类库。
* 载入的类库和自定义类库,都遵循PHP的语言规则,不能允许同名、不符合类名或函数名的类和函数出现。
* 建议:开发者在第三方类库中加入lib_的前缀,以示区别。
扩展功能
SpeedPHP框架的扩展功能,指通过框架定义的扩展点,为应用程序增加新的功能——这些功能可以改变框架内部的常规处理方式,以达到特殊的功能需要。举个例子,如框架自带的spUrlRewrite扩展类,就是通过扩展点router_prefilter来改变框架内部路由系统的导向,进而达到根据伪静态网站访问而转向的功能。
扩展点是框架扩展功能的核心要素,开发者根据扩展点的功能特性,加入自己需要执行的指令(函数、类方法函数)等,当框架运行到扩展点的位置,将优先执行开发者加入的指令,然后根据扩展点的配置返回或不返回,进而改变了框架的原有状态。
扩展点通过应用程序配置来实现,方便开发者移植类库和框架升级。