2012-04-02 10 views
2

いくつかの基本例外クラスを作成し、そこから継承する必要があります。Zend Frameworkでカスタムシステム固有の例外を配置する場所

私は2つのアプローチを参照してください。

1. Create folder 'Exceptions' in library and use standard autoload mechanism 
    /library 
     /Exception/ 
     Base.php 
     InvalidParameter.php 
2. Just declare exception classes in model, that uses it. 

は、より良い、より「Zendのっぽい」アプローチはありますか?あなたはZendのライブラリに見れば

+1

私は、オプション1は既にかなりZend-ishだと言っています。 – bububaba

答えて

4

は、彼らが正常に何をすべきか

/library 
    Exception.php 
    /Exception/ 
    InvalidParameter.php 

され、Exception_InvalidParameterは例外を拡張するようInvalidParameterクラスになります。それはあなたがオプション1で提案したものと非常に似ています。 私は通常、すべてのカスタムライブラリクラスを持っています。/library/custom

-3

特定の例外クラスを作成する目的は、等)。 1つのクラスで機能を完全に記述できる場合は、たとえば

Class AdminController extends Zend_Controller_Action 
{ 

public function loginAction() 
{ 
    throw new LoginException('Failed login'); 
} 
} 

Class LoginException extends Exception { 
} 

注意:両方のクラスは同じファイルAdminController.phpにあります。このアプローチは、同じファイル内にあるLoginExceptionをロードするためにオートローディングが必要ないため、高速です。

+0

これは、 'LoginContext'クラスが' AdminController'が使われている(id。 – CDuv

関連する問題