このすみノート

Webエンジニアが技術や趣味を書くブログです。

Smartyのデリミタを変更する

Smartyで開発している時にハマったので、個人用メモです。

Smartyのデリミタは、デフォルトでシングル中括弧である

  • Smartyのデリミタは、デフォルトだとシングル中括弧(波括弧)です。
  • 人によりけりかもしれませんが、シングル中括弧は少しもとなく、インラインCSSやインラインJSなどで誤作動しそうな不安があります。
{$name}

Smartyのデリミタを、ダブル中括弧に変更する

  • そこで、 {{$name}} のダブル中括弧方式に変更します。
<?php
require('vendor/autoload.php');

$smarty = new Smarty();
// デリミタの変更
$smarty->left_delimiter  = '{{';
$smarty->right_delimiter = '}}';

$smarty->assign('name', 'abcdefg');
$smarty->display('index.html');

// index.html
// {{$name}} が置換される

あとがき

  • Smartyが、デフォルトでシングル中括弧を採用している理由が気になります。
  • 案外シングルでも大丈夫だったりするかもしれないので、もしかしたら、単に私の気にしすぎという可能性もありそうです。