Thinkphp 框架扩展之类库扩展操作详解
本文实例讲述了thinkphp 框架扩展之类库扩展操作。分享给大家供大家参考,具体如下:
类库扩展
thinkphp的类库主要包括公共类库和应用类库,都是基于命名空间进行定义和扩展的。只要按照规范定义,都可以实现自动加载。
公共类库
公共类库通常是指thinkphp/library
目录下面的类库,例如:
think目录:系统核心类库
org目录:第三方公共类库
这些目录下面的类库都可以自动加载,你只要把相应的类库放入目录中,然后添加或者修改命名空间定义。 你可以在org/util/目录下面添加一个image.class.php 文件,然后添加命名空间如下:
namespace org\util; class image { }
这样,就可以用下面的方式直接实例化image类了:
$image = new \org\util\image;
除了这些目录之外,你完全可以在thinkphp/library
目录下面添加自己的类库目录,例如,我们添加一个com目录用于企业类库扩展:
com\sina\app类(位于com/sina/app.class.php )
namespace com\sina; class app { }
com\sina\rank类(位于com/sina/rank.class.php)
namespace com\sina; class rank { }
公共类库除了在系统的library目录之外,还可以自定义其他的命名空间,我们只需要注册一个新的命名空间,在应用或者模块配置文件中添加下面的设置参数:
'autoload_namespace' => array( 'lib' => app_path.'lib', )
我们在应用目录下面创建了一个lib目录用于放置公共的lib扩展,如果我们要把上面两个类库放到lib\sina目录下面,只需要调整为:
lib\sina\app类(位于lib/sina/app.class.php )
namespace lib\sina; class app { }
lib\sina\rank类(位于lib/sina/rank.class.php)
namespace lib\sina; class rank { }
如果你的类库没有采用命名空间的话,需要使用import方法先加载类库文件,然后再进行实例化,例如: 我们定义了一个counter类(位于com/sina/util/counter.class.php):
class counter { }
在使用的时候,需要按下面方式调用:
import('com.sina.util.couter'); $object = new \counter();
应用类库
应用类库通常是在应用或者模块目录下面的类库,应用类库的命名空间一般就是模块的名称为根命名空间,例如: home\model\usermodel类(位于application\home\model)
namespace home\model; use think\model; class usermodel extends model{ }
common\util\pay类(位于application\common\util)
namespace common\util; class pay { }
admin\api\userapi类(位于application\admin\api)
namespace admin\api; use think\model; class userapi extends model{ }
记住一个原则,命名空间的路径和实际的文件路径对应的话 就可以实现直接实例化的时候自动加载。
推荐阅读
-
thinkphp框架类库扩展操作示例
-
PHP使用PDO、mysqli扩展实现与数据库交互操作详解
-
基于Enterprise Library的Winform开发框架实现支持国产达梦数据库的扩展操作
-
thinkphp框架类库扩展操作示例
-
thinkphp5框架实现的自定义扩展类操作示例
-
TP5(thinkPHP5)框架mongodb扩展安装及特殊操作示例
-
Thinkphp 框架配置操作之动态配置、扩展配置及批量配置实例分析
-
基于Enterprise Library的Winform开发框架实现支持国产达梦数据库的扩展操作
-
PHP使用PDO、mysqli扩展实现与数据库交互操作详解
-
ThinkPHP框架设计及扩展详解