欢迎访问 生活随笔!

凯发k8官方网

当前位置: 凯发k8官方网 > 编程语言 > php >内容正文

php

thinkphp 3.2公共类库、应用类库thinkphp/library讲解 -凯发k8官方网

发布时间:2025/1/21 php 23 豆豆
凯发k8官方网 收集整理的这篇文章主要介绍了 thinkphp 3.2公共类库、应用类库thinkphp/library讲解 小编觉得挺不错的,现在分享给大家,帮大家做个参考.



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

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

总结

以上是凯发k8官方网为你收集整理的thinkphp 3.2公共类库、应用类库thinkphp/library讲解的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得凯发k8官方网网站内容还不错,欢迎将凯发k8官方网推荐给好友。

网站地图