2013-03-04追記
以下の記述で私が参照していたのは、Smartyバージョン2のドキュメントでした。Smartyバージョン3のドキュメントには、parent::__construct()とする書き方が載っています。
Smartyのドキュメントには、Smartyクラスを継承したクラスの書き方の例として、以下の様なクラスが載っています。
class Smarty_GuestBook extends Smarty { function Smarty_GuestBook() { // クラスのコンストラクタ。 // これらは新しいインスタンスで自動的にセットされます。 $this->Smarty(); $this->template_dir = '/web/www.example.com/guestbook/templates/'; $this->compile_dir = '/web/www.example.com/guestbook/templates_c/'; $this->config_dir = '/web/www.example.com/guestbook/configs/'; $this->cache_dir = '/web/www.example.com/guestbook/cache/'; $this->caching = true; $this->assign('app_name', 'Guest Book'); } }引用元:http://www.smarty.net/docsv2/ja/installing.smarty.extended.tpl
しかし、この書き方だと、PHP5.4.10/Smarty3.1.13の環境では、コンストラクターの呼び出し時に例外が発生して止まりました。以下のように書けば動きます(太字が変更箇所。また、変更箇所に関係ない部分は省略)。
class Smarty_GuestBook extends Smarty { function Smarty_GuestBook() { parent::__construct();// $this->Smarty();ではダメ } }
あと、Smarty_GuestBook()メソッドはコンストラクターとして働いていますが、PHP5ではクラス名と同名のメソッド名を付けるべきではないので、__construct()にすべきでしょうね。