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

 更新时间:2020年04月23日 09:13:52   作者:人生如初见_张默  
这篇文章主要介绍了Thinkphp 框架扩展之类库扩展操作,结合实例形式分析了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相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

相关文章

  • thinkphp6如何使用中间件记录行为日志

    thinkphp6如何使用中间件记录行为日志

    这篇文章主要介绍了thinkphp6如何使用中间件记录行为日志问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • ThinkPHP CURD方法之where方法详解

    ThinkPHP CURD方法之where方法详解

    这篇文章主要介绍了ThinkPHP CURD方法的where方法,需要的朋友可以参考下
    2014-06-06
  • PHP页面输出时js设置input框的选中值

    PHP页面输出时js设置input框的选中值

    这篇文章主要介绍了PHP页面输出时js设置input框的选中值代码,代码简单易懂,需要的朋友可以参考下
    2016-09-09
  • PHP 中常量的知识整理

    PHP 中常量的知识整理

    这篇文章主要介绍了PHP 中常量的知识整理的相关资料,需要的朋友可以参考下
    2017-04-04
  • 一个很不错的PHP翻页类

    一个很不错的PHP翻页类

    一个很不错的PHP翻页类,包含了使用例子,感谢Alan
    2009-06-06
  • 推荐几款用 Sublime Text 开发 Laravel 所用到的插件

    推荐几款用 Sublime Text 开发 Laravel 所用到的插件

    Sublime Text2 是一款具有代码高亮、语法提示、自动完成且反应快速的编辑器软件,不仅具有华丽的界面,还支持插件扩展机制,用她来写代码,绝对是一种享受。所以本人也是用她来做Laravel开发的,这里给大家推荐几款她的插件
    2014-10-10
  • ThinkPHP3.1新特性之字段合法性检测详解

    ThinkPHP3.1新特性之字段合法性检测详解

    表单提交的字段合法性检测,可以更好的保护数据的安全性。这一特性是3.1安全特性中的一个重要部分。这篇文章主要介绍了ThinkPHP3.1的字段合法性检测,需要的朋友可以参考下
    2014-06-06
  • ThinkPHP 5 AJAX跨域请求头设置实现过程解析

    ThinkPHP 5 AJAX跨域请求头设置实现过程解析

    这篇文章主要介绍了ThinkPHP 5 AJAX跨域请求头设置实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • php中通过curl模拟登陆discuz论坛的实现代码

    php中通过curl模拟登陆discuz论坛的实现代码

    PHP支持的由Daniel Stenberg创建的libcurl库允许你与各种的服务器使用各种类型的协议进行连接和通讯。libcurl目前支持http、https、ftp、 gopher、telnet、dict、file和ldap协议
    2012-02-02
  • ThinkPHP模板中数组循环实例

    ThinkPHP模板中数组循环实例

    这篇文章主要介绍了ThinkPHP模板中数组循环,以实例形式展示了ThinkPHP采用foreach标签循环输出数组的方法,需要的朋友可以参考下
    2014-10-10

最新评论