构造函数

您正在阅读旧版文档,新版文档已迁移至 [https://document.pescms.com]

目录

在PESCMS2.5之前,构造函数都是使用PHP本身的__construct()。在实际的开发过程中,随着不同人员的参与,他们容易对构造函数进行调整,导致开发过程出现各种奇异的错误。为此PESCMS2.5起,不再允许在控制器中使用PHP本身的__construct()方法。若执意调用__construct(),程序将会报出如下错误:

PHP error:Cannot override final method Core\Controller\Controller::__construct()

__init()

对于屏蔽__construct()的做法,PESCMS给出了一个代替的方法:__init()。该方法的作用与PHP本身的构造函数一样,在控制器被执行的那一刻起,它就会自动运行其中的方法。用法很简单,在任意控制器中,声明该方法则可,下面给出关于文档系统中定义构造函数的示例代码:

<?php

namespace App\Doc;

abstract class Common extends \Core\Controller\Controller {

    public function __init() {
        parent::__init();//引用父类定义的构造函数方法,本行方法请依据实际的业务需求调用
        
        if ($this->checkLogin() === true) {
            $this->login = true;
        }
        $this->tree();
    }

}

PESCMS DOC 文档系统
© Copyright 2015-2024. by the PESCMS DOC
耗时0.0252秒