ThinkPHP中添加公共类

来源:互联网 发布:阿里云acp认证 编辑:程序博客网 时间:2024/06/08 04:43

添加公共类

有时,需要在thinkphp中的一些类之中进行一些公共的操作,如检查用户是否登录、session是否过期等,这些可以通过在thinkphp中添加公共类来实现。

举一个后台添加用户验证的例子来说。

前提:后台的每一个页面都要检测该是否是允许登录的用户,检测函数为checkAdmin()。

1.在应用的Common目录下建一个Controller目录,在Controller目录里添加一个类AdminController.class.php。内容如下:

<?phpnamespace Common\Controller;use Think\Controller;class AdminController extends Controller{function _initialize(){if(!checkAdmin()){$this->error("permission denied!");exit(0);}}}
2.后台操作的每一个类,都继承自该类,如后台的IndexController.class.php页面:

<?phpnamespace Admin\Controller;use Common\Controller\AdminController;class IndexController extends AdminController {//do something...}
这样后台每个页面的类调用时,都会进行用户验证。

_initialize()和__construct()的区别

_initialize()是thinkphp特有的方法,__construct()是php中的方法,二者都是用来在类初始化的时候调用的。

_initialize()的作用体现在继承中,调用_initialize()的时候,会先执行父类的构造方法,然后再执行自己的构造方法。相当于

class XXX extends YYY{function __construct(){parent::__construct();//XXX's initialize...}}
而普通的__construct()只会调用自己的构造方法。

以上为个人观点,如有错误,欢迎指正。

原文地址:http://blog.csdn.net/somehow1002/article/details/74276206




原创粉丝点击