Smarty3.1.6とPHP5.2のprotectedなメンバ変数(plugins_dir)の加工

これが正解でした。セッタができたただけなんですね。

$this->setPluginsDir(array(
	'smarty/plugins',//defaultのプラグイン
	'mydir/plugins/smarty/',
	'mydir/plugins/smarty/'
));

* * *

以下、古い情報。

Smarty3.1.6になって、

private $plugins_dir = array();

が、

protected $plugins_dir = array();

になりました(Smarty-3.1.6 - 18.11.2011)。

これにともなって、

$this->plugins_dir[] = 'mydir/plugins/smarty/';

みたいなプラグインディレクトリの追加ができなくなっちゃいました。

正統派としては、ARRAY_AS_PROPSを使うべきっぽいのですが、以下のような書き方でもいけるみたい。

$this->plugins_dir = array(
	$this->plugins_dir[0],
	'mydir/plugins/smarty/'
);

あんまり美しくないけど。

ジャンル: Web