开发者社区> Tinywan.> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

ThinkPHP 3.2公共类库、应用类库ThinkPHP/Library讲解

简介: 一、ThinkPHP的类库主要包括公共类库和应用类库,都是基于命名空间进行定义和扩展的。只要按照规范定义,都可以实现自动加载。        公共类库公共类库通常是指ThinkPHP/Library目录下面的类库,例如:            Think目录:系统核心类库            Org目录:第三方公共类库        这些目录下面的类库都可以自动加载,你只要把相应的类库放入目录中,然后添加或者修改命名空间定义。
+关注继续查看



一、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{
            }

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Laravel和Thinkphp有什么区别,哪个框架好用
Laravel和Thinkphp有什么区别,哪个框架好用
0 0
【ThinkPHP5.1】如何引用extend的类库
【ThinkPHP5.1】如何引用extend的类库
0 0
C# 创建与引用dll类库项目实战
本文目录 1. 类的访问修饰符 2. 新建类库项目 3. 编辑类代码 4. 编译并生成dll文件 5. 调用该dll
0 0
手动添加第三方vendor类,laravel自动加载
手动添加第三方vendor类,laravel自动加载
0 0
ThinkPHP 3.2 vendor()方法的深入研究及Phpqrcode的正确扩展
ThinkPHP vendor 方法导入第三方类库 第三方类库 第三方类库指除了 ThinkPHP 框架、应用项目类库之外的其他类库,一般由第三方系统或产品提供,如 Smarty、Zend 等系统的类库等。
1462 0
在类库中无法使用ConfigurationManager
需要先引用DLL文件: C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.configuration.dll 然后才可以使用 System.
381 0
一起谈.NET技术,在VS2010项目中引用Lib静态库(以Openssl为例)
  Openssl是个为网络通信提供安全及数据完整性的一种安全协议,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用。   首先下载Openssl包:(http://www.
984 0
“.NET研究”在VS2010项目中引用Lib静态库(以Openssl为例)
  Openssl是个为网络通信提供安全及数据完整性的一种安全协议,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用。   首先下载Openssl包:(http://www.
660 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
使用C++11开发PHP7扩展
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载