全局Smarty实例的设计模式

时间:2014-09-24 15:19:51

标签: php smarty

我正在寻找一种类模式,帮助我获得Smarty的全局实例并在所有应用程序生命周期中使用它。 我尝试使用像这样的单例工厂单例模式:

final class Personal_Smarty
{
    static private $instance;

    private function __construct() {}

    static public function instance()
    {
        if( !isset( self::$_instance ) )
        {
                $smarty = new Smarty();

                self::$instance = $smarty;
        };
        return self::$instance;
    }

}

但我认为这不是我需要的,因为我需要在所有应用程序生命周期内只创建一次Smarty实例(所以我不想被迫为每个请求创建一个Smarty实例)。

有没有好办法呢? 我不确定这样做是否合适,以及我是否会遇到问题。你怎么看? 我的问题的原因是我认为为我使用的每个PHP脚本创建智能实例可能是繁重的(开销),但也许它只是我的想法。

1 个答案:

答案 0 :(得分:1)

跨不同请求共享数据的唯一方法是将其存储在session中。但是,会话中的数据也需要存储和加载,这就是为什么在会话中存储类实例不是一个好主意。

基本上,您认为创建智能实例是性能问题的假设是不正确的。