$compile_id

Постоянный идентификатор компиляции. Как альтернативу использованию одного и того же compile_id при каждом вызове функции, вы можете самостоятельно задавать этот идентификатор, и в этом случае будет безусловно автоматически это значение.

С помощью compile_id вы можете обойти ограничение, из-за которого вы не можете использовать один compile_dir для разных template_dir. Если вы установите уникальный compile_id для каждого template_dir, Smarty сможет различать компилированные шаблоны по их compile_id.

К примеру, если у вас есть префильтр, локализирующий ваш ваши шаблоны (проще говоря, переводит части шаблонов на другой язык) во время компиляции, то вам следует использовать текущий язык в качестве compile_id и вы получите по набору скомпилированных шаблонов для каждого используемого языка.

Другим примером может быть использование одной компиляционной директории для нескольких доменов / нескольких vhost'ов, к примеру:

Example 12.1. compile_id


   $smarty->compile_id = $_SERVER['SERVER_NAME'];
   $smarty->compile_dir = 'path/to/shared_compile_dir';