美文网首页工作生活
关于调用model中的方法讨论

关于调用model中的方法讨论

作者: 句小芒 | 来源:发表于2019-07-04 09:25 被阅读0次

    之前在阅读代码的时候发现代码中大量出现类似于ModelName::instance()方法。所以特意去查看了一下该方法的实现。代码如下:

    /**
         * Returns static class instance, which can be used to obtain meta information.
         * @param bool $refresh whether to re-create static instance even, if it is already cached.
         * @return static class instance.
         */
        public static function instance($refresh = false)
        {
            $className = get_called_class();
            if ($refresh || !isset(self::$_instances[ $className ])) {
                self::$_instances[ $className ] = Yii::createObject($className);
            }
            return self::$_instances[ $className ];
        }
    

    我们平时在调用model类中的方法时,可能会采用以下方式:

    $model = new ModelName();
    $model ->funName();
    

    那么使用instance有什么优势呢?
    看一下官方对该方法的解释:返回静态类实例,可用于获取meta信息。就是通过单例模式来返回类实例。从而去调用类里面的方法。单例模式的作用就不多说了(一个类只有一个实例)。

    相关文章

      网友评论

        本文标题:关于调用model中的方法讨论

        本文链接:https://www.haomeiwen.com/subject/upnkhctx.html