Я ищу шаблон класса, который поможет мне получить глобальный экземпляр 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, который я использую, может быть обременительным (накладные расходы), но, возможно, это только моя мысль.
Единственный способ обмена данными между различными запросами — это сохранить их в сессия. Однако данные в сеансе также должны храниться и загружаться между ними, поэтому сохранение экземпляра класса в сеансе не является хорошей идеей.
По сути, ваше предположение о том, что создание умного экземпляра является проблемой производительности, просто неверно.
Других решений пока нет …