ええ、またですよ。Smarty。
これもつまらないミスといえば、つまらないミスなんですが、かなりミスリードされたのでメモしておきます。
また、どこかで誰かが、ハマらないように願いつつ、ここへ書き留めておきます。
Smartyの日本語訳されたマニュアルの「キャッシュ」項目には、すべてのキャッシュをクリアするには、
[php]
<?php
require(‘Smarty.class.php’);
$smarty = new Smarty;
$smarty->caching = 1;
// 全てのキャッシュファイルをクリアします
$smarty->clear_all_cache();
$smarty->display(‘index.tpl’);
?>
[/php]
といったサンプルが載っています。
ところが、その通りにコーディングして実行すると、また謎のエラーが・・・
Fatal error: Uncaught exception 'SmartyException' with message 'Call of unknown method 'clear_all_cache'.' in /hibara/smarty/sysplugins/smarty_internal_templatebase.php:806 Stack trace: #0 /hibara/www/hibara.org/software/index.php(23): Smarty_Internal_TemplateBase->__call('clear_all_cache', Array) #1 /hibara/www/hibara.org/software/index.php(23): Smarty->clear_all_cache() #2 {main} thrown in /hibara/smarty/sysplugins/smarty_internal_templatebase.php on line 806
※例によってパスは適当なものに変えています。
いずれにしていも、エラーメッセージ中の「unknown method」とはどういうことよ?
と思って調べていたら、ありました。回答が、
なにぃー、関数名が変わっただとっ!?
というわけで、にわかに信じられない気持ちで、日本語訳のではなく、最新バージョンのドキュメントが載っている英語版を確認したらあった。
最新バージョンのSmartyでは関数名が変わっていたりするって・・・どうなの??
[php]
//キャッシュのオールクリア
$smarty->clearAllCache();
[/php]
って直したら、無事動作しましたとさ。ちゃんちゃん(最近こんなのばっか)。
というわけで、今後は日本語版ではなく、英語版の最新ドキュメントを参考にすることにした方が良さそうです。
このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください。
日々の開発作業で気づいたこと共有を。同じところで躓いている人が、 検索で辿り着けたら良いな、というスタンスで記事を書くので不定期更新になります。
コメントする