ThinkPHP5框架修改——添加自己的类库

有些话、适合烂在心里 提交于 2019-11-27 05:14:53

ThinkPHP5框架修改——添加自己的类库

说明:博主最近的项目,需要实现数据分页。但thinkphp自带的分页不想用。想把我之前自己
写的分页类加以使用。所以看了一下扩展类库的功能。既然工作完成了,想分享出来,一来自己做
笔记,二来给有需要学习的朋友一个方便。

1,thinkPHP运行流程

从tp5/public/index.php入口文件进入,通过加载框架引导文件/tp5/thinkphp/start.php
进行初始化常量,注册各种需要的机制,加载配置文件。准备完成后即可通过
/tp5/thinkphp/library/think/App.php类run()方法执行。

//这里只是概览一遍,具体细节可自行阅读thinkphp

2,准备工作

对框架进行修改,切忌修改核心代码。一般方法是在特定目录下进行修改,调用。

ThinkPHP提供了需要引入其他修改的特定目录 tp5/extend;(当然也可以在入口文件重新定义
EXTEND_PATH)来自定义修改目录。建议能不修改不要修改。

3,示例

具体需求:给thinkphp引入自定义的分页类Pagination.php。然后调用分页类进行业务代码的编写。

方法1:利用命名空间自动加载

    类文件放置目录:tp5/extend/page/admin/Pagination.php
    根据目录,给类文件绑定命名空间(psr-4规则):
        <?php
            namespace page\admin;
            class pagination 
            { 
                ………………………………
            }

    以上用通俗的话来说,就是自动加载扩展类库,需要使用命名空间,并且命名空间要和目录对应。
    根目录是extend目录下开始的目录名。

    调用
        $page = new page\admin\pagination();
    或者
        use page\admin\pagination;
        $page = new pagination();


方法2:不利用命名空间

    如果类文件没有命名空间,则无法自动加载。必须使用Loader类进行手动加载

    use \think\Loader;
    Loader::import('page.admin.pagination');
    $page = new pagination();

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!