4.1 函数库

ThinkPHP中的函数库可以分为系统函数库和项目函数库。

系统函数库

库系统函数库位于系统的Common目录下面,有三个文件:
common.php是全局必须加载的基础函数库,在任何时候都可以直接调用;
functions.php是框架标准模式的公共函数库,其他模式可以替换加载自己的公共函数库或者对公共函数库中的函数进行重新定义;
runtime.php是框架运行时文件,仅在调试模式或者编译过程才会被加载,因此其中的方法在项目中不能直接调用;

项目函数库

库项目函数库通常位于项目的Common目录下面,文件名为common.php,该文件会在执行过程中自动加载,并且合并到项目编译统一缓存,如果使用了分组部署方式,并且该目录下存在"分组名称/function.php"文件,也会根据当前分组执行时对应进行自动加载,因此项目函数库的所有函数也都可以无需手动载入而直接使用。
如果项目配置中使用了动态函数加载配置的话,项目Common目录下面可能会存在更多的函数文件,动态加载的函数文件不会纳入编译缓存。
在特殊的情况下,模式可以改变自动加载的项目函数库的位置或者名称。

扩展函数库

库我们可以在项目公共目录下面定义扩展函数库,方便需要的时候加载和调用。扩展函数库的函数定义规范和项目函数库一致,只是函数库文件名可以随意命名,一般来说,扩展函数库并不会自动加载,除非你设置了动态载入。

函数加载

系统函数库和项目函数库中的函数无需加载就可以直接调用,对于项目的扩展函数库,可以采用下面两种方式调用:
动态载入
我们可以在项目配置文件中定义LOAD_EXT_FILE参数,例如:"LOAD_EXT_FILE"=>"user,db"通过上面的设置,就会执行过程中自动载入项目公共目录下面的扩展函数库文件user.php和db.php,这样就可以直接在项目中调用扩展函数库user.php和db.php中的函数了,而且扩展函数库的函数修改是实时生效的。

手动载入
如果你的函数只是个别模块偶尔使用,则不需要采用自动加载方式,可以在需要调用的时候采用load方法手动载入,方式如下:load("@.user")@.user表示加载当前项目的user函数文件,这样就可以直接user.php扩展函数库中的函数了。