欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

class类 - ThinkPHP 3.2.3,我有一个class,应该放在哪里?

程序员文章站 2022-06-15 19:21:19
...

我有一个class,class的名字叫get_user_info,这个class里有很多function,我应该把这个class放在哪里,才能在Controller中调用到这个class里的function? 比如在List这个Controller中。

其实,只有一个问题,能不能放在Common文件夹下面

class类 - ThinkPHP 3.2.3,我有一个class,应该放在哪里?

回复内容:

我有一个class,class的名字叫get_user_info,这个class里有很多function,我应该把这个class放在哪里,才能在Controller中调用到这个class里的function? 比如在List这个Controller中。

其实,只有一个问题,能不能放在Common文件夹下面

class类 - ThinkPHP 3.2.3,我有一个class,应该放在哪里?

/ThinkPHP/Library/Org下建个自己的目录;扔里面写好命名空间即可;
好吧;我拿项目举个例子;
以分页来说;
示例项目:http://git.oschina.net/shuaibai123/thinkbjy
分页类:http://git.oschina.net/shuaibai123/thinkbjy/blob/master/ThinkPHP/Library/Org/Bjy/Page.class.php
调用分页类第159行:http://git.oschina.net/shuaibai123/thinkbjy/blob/master/Application/Common/Model/ArticleModel.class.php

首先是要定义分页类的命名空间:namespace OrgBjy;
然后调用这个分页类的时候就是:$page=new OrgBjyPage($count,$limit);

你要使用的方式同理;自己可以定义一个目录;定义好命名空间;使用的时候;对应好命名空间实例化就可以了;

再或者以官方的String类来讲解:/ThinkPHP/Library/Org/Util/String.class.php
这里面有一些用来处理字符串的方法;比如说获取随机数、字符串截取等;你可以查看官方的源代码来理解;

类名有点奇怪,看着挺像一个模型的,是先有的模型类,再有的thinkphp项目?

如果是和我说的一致,感觉有3个办法

  1. 重构一次代码,符合thinkphp的model规范

  2. 看下官方的类库扩展,看看是否可以整合进来,因为你这可能还牵涉到数据库操作,具体就要看你如何调试了

  3. 最坏的打算就如 KingzChenung 所说include也可以

get_user_info这个是类的名字还是方法的名字,目前看着好像是方法的名字啊,如果是类的话就可以根据命名空间区分出来一个utils这样的命名空间来存放这个类,具体的要看你的命名空间根目录是怎样了

可以在controller同级目录新建自定义目录,类改命名空间,然后就能引用。其实在其他地方也是随便你的,大不了自己include,最多不符合框架规范而已。

作为第三方插件引入呢