• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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程序设计有所帮助。

    您可能感兴趣的文章:
    • Thinkphp 框架扩展之标签库驱动原理与用法分析
    • Thinkphp 框架扩展之数据库驱动常用方法小结
    • thinkPHP5.0框架整体架构总览【应用,模块,MVC,驱动,行为,命名空间等】
    • Thinkphp 框架扩展之应用模式实现方法分析
    • Thinkphp 框架扩展之Widget扩展实现方法分析
    • Thinkphp 框架扩展之行为扩展原理与实现方法分析
    • thinkphp框架类库扩展操作示例
    • ThinkPHP行为扩展Behavior应用实例详解
    • ThinkPHP应用模式扩展详解
    • ThinkPHP的Widget扩展实例
    • Thinkphp 框架扩展之驱动扩展实例分析
    上一篇:TP框架实现上传一张图片和批量上传图片的方法分析
    下一篇:Thinkphp 框架扩展之数据库驱动常用方法小结
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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