我正在寻找一种类模式,帮助我获得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脚本创建智能实例可能是繁重的(开销),但也许它只是我的想法。
答案 0 :(得分:1)
跨不同请求共享数据的唯一方法是将其存储在session中。但是,会话中的数据也需要存储和加载,这就是为什么在会话中存储类实例不是一个好主意。
基本上,您认为创建智能实例是性能问题的假设是不正确的。