Smarty に例外を投げさせる

  1. require_once 'Smarty.class.php';
  2. /**
  3.  * Smarty のラッパー
  4.  */
  5. class My_Smarty extends Smarty
  6. {
  7.   /**
  8.    * エラー時に例外を投げるか
  9.    * @var boolean
  10.    */
  11.   public $throw_exception = true;
  12.   /**
  13.    * trigger Smarty error
  14.    *
  15.    * @param string $error_msg
  16.    * @param integer $error_type
  17.    */
  18.   function trigger_error( $error_msg, $error_type = E_USER_WARNING )
  19.   {
  20.     if( $this->throw_exception ){
  21.       throw new My_Smarty_Exception( $error_msg );
  22.     }else{
  23.       parent::tigger_error($error_msg, $error_type);
  24.     }
  25.   }
  26. }


Zend+Smary で作るなら、エラーはちゃんと例外投げてエラーハンドラーで処理しようぜ。 的な物。
あと例外クラスは適当に作って読み込む。

エラーの種類で例外クラス(もしくはコード)を分けたいところだけれども、そこまで頑張るほどの事でもないかな。

レイアウトがぐだぐだに崩れているのはゆっくり直す。 つもり。