百搜论坛欢迎您的加入!
adimg adimg
 
昨日:篇  今日:篇   总帖:篇   会员:
博主最大Lv63   
Thinkphp 框架扩展之类库扩展操作解析     

Thinkphp 框架扩展之类库扩展操作详解

这篇文章主要介绍了Thinkphp 框架扩展之类库扩展操作,结合实例形式分析了Thinkphp 类库扩展的相关原理、实现方法与操作注意事项,需要的朋友可以参考下

本文实例讲述了Thinkphp 框架扩展之类库扩展操作。分享给大家供大家参考,具体如下:

库类扩展

ThinkPHP的类库主要包括公共类库和应用类库,都是基于命名空间进行定义和扩展的。只要按照规范定义,都可以实现自动加载。

公共库类

公共类库通常是指ThinkPHP/Library目录下面的类库,例如:

Think目录:系统核心类库
Org目录:第三方公共类库

这些目录下面的类库都可以自动加载,你只要把相应的类库放入目录中,然后添加或者修改命名空间定义。 你可以在Org/Util/目录下面添加一个Image.class.php 文件,然后添加命名空间如下:

1

2

3

namespace Org\Util;

class Image {

}

这样,就可以用下面的方式直接实例化Image类了:

1

$image = new \Org\Util\Image;

除了这些目录之外,你完全可以在ThinkPHP/Library目录下面添加自己的类库目录,例如,我们添加一个Com目录用于企业类库扩展:

Com\Sina\App类(位于Com/Sina/App.class.php )

1

2

3

namespace Com\Sina;

class App {

}

Com\Sina\Rank类(位于Com/Sina/Rank.class.php)

1

2

3

namespace Com\Sina;

class Rank {

}

公共类库除了在系统的Library目录之外,还可以自定义其他的命名空间,我们只需要注册一个新的命名空间,在应用或者模块配置文件中添加下面的设置参数:

1

2

3

'AUTOLOAD_NAMESPACE' => array(

  'Lib'   => APP_PATH.'Lib',

)

我们在应用目录下面创建了一个Lib目录用于放置公共的Lib扩展,如果我们要把上面两个类库放到Lib\Sina目录下面,只需要调整为:

Lib\Sina\App类(位于Lib/Sina/App.class.php )

1

2

3

namespace Lib\Sina;

class App {

}

Lib\Sina\Rank类(位于Lib/Sina/Rank.class.php)

1

2

3

namespace Lib\Sina;

class Rank {

}

如果你的类库没有采用命名空间的话,需要使用import方法先加载类库文件,然后再进行实例化,例如: 我们定义了一个Counter类(位于Com/Sina/Util/Counter.class.php):

1

2

class Counter {

}

在使用的时候,需要按下面方式调用:

1

2

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)

1

2

3

namespace Common\Util;

class Pay {

}

Admin\Api\UserApi类(位于Application\Admin\Api)

1

2

3

4

namespace Admin\Api;

use Think\Model;

class UserApi extends Model{

}

记住一个原则,命名空间的路径和实际的文件路径对应的话 就可以实现直接实例化的时候自动加载。

推荐教程:《PHP视频教程

以上就是Thinkphp 框架扩展之类库扩展操作解析的详细内容

 0  已被阅读了975次  楼主 2020-06-23 09:27:41
回复列表

回复:Thinkphp 框架扩展之类库扩展操作解析

联系站长 友链申请桂ICP备19000949号-1     桂ICP备19000949号-1
您的IP:3.17.184.90,2024-05-07 08:18:26,Processed in 0.03617 second(s).
免责声明: 本网不承担任何由内容提供商提供的信息所引起的争议和法律责任。
Powered by HadSky 7.12.9
已有0次打赏
(0) 分享
分享
取消
免责声明
1、本站资源,均来自网络,版权归原作者,所有资源和文章仅限用于学习和研究目的 。
2、不得用于商业或非法用途,否则,一切责任由该用户承担 !
如果觉得本文还不错请点个赞或者打赏点轻币哦~
拒绝伸手党,拿走请回复,尊重楼主,尊重你我他~

侵权删除请致信 E-Mail:207882320@qq.com