ホームページ  >  記事  >  バックエンド開発  >  [ThinkPHP] モデルの基本クラス構築メソッドの _initialize を最後に移動するとどのような影響がありますか?

[ThinkPHP] モデルの基本クラス構築メソッドの _initialize を最後に移動するとどのような影響がありますか?

WBOY
WBOYオリジナル
2016-06-23 13:56:151066ブラウズ

バージョン: ThinkPHP 3.1.3
問題: _initialize() が ThinkPHP のカスタム モデルで定義されている場合、$this-> を使用してこの _initialize のデータをクエリすることはできません。
私のアイデア: Model 基本クラスの __contruct メソッドの _initialize をメソッドの最後に移動します。これはどのような影響がありますか?分析してください!

File/ThinkPHP/Lib/Core/Model.class.php、モデル基本クラス __contruct の $this->_initialize が $this->db に移動された後の影響は何ですか...?

    /**     * 架构函数     * 取得DB类的实例对象 字段检查     * @access public     * @param string $name 模型名称     * @param string $tablePrefix 表前缀     * @param mixed $connection 数据库连接信息     */    public function __construct($name='',$tablePrefix='',$connection='') {        // 模型初始化        $this->_initialize();        // 获取模型名称        if(!empty($name)) {            if(strpos($name,'.')) { // 支持 数据库名.模型名的 定义                list($this->dbName,$this->name) = explode('.',$name);            }else{                $this->name   =  $name;            }        }elseif(empty($this->name)){            $this->name =   $this->getModelName();        }        // 设置表前缀        if(is_null($tablePrefix)) {// 前缀为Null表示没有前缀            $this->tablePrefix = '';        }elseif('' != $tablePrefix) {            $this->tablePrefix = $tablePrefix;        }else{            $this->tablePrefix = $this->tablePrefix?$this->tablePrefix:C('DB_PREFIX');        }        // 数据库初始化操作        // 获取数据库操作对象        // 当前模型有独立的数据库连接信息        $this->db(0,empty($this->connection)?$connection:$this->connection);        //假如把_initialize移动到这里会产生什么影响?        //$this->_initialize();    }


ディスカッションに返信 (解決策)

影響: フレームワークが正しく実行されません。

影響: フレームワークが正しく動作しません。



これはなぜでしょうか?

_initialize の本来の目的は初期化することです
そして、_initialize にはパラメーターも戻り値もありません。明らかに、スケジュールされたプロセスの実行を妨げることはできません
したがって、それがどこに配置されても問題ではありません

実際には何もしません。デバッグに使用されると思います。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。