2012-04-02 43 views
2

我需要創建一些基本異常類並從中繼承。在Zend Framework中將自定義特定系統異常的位置

我看到兩種方法:

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十歲上下」 的做法?

+1

我想說選項1已經很Zend-ish – bububaba 2012-04-02 10:38:05

回答

4

如果你看看Zend庫,他們通常做的是

/library 
    Exception.php 
    /Exception/ 
    InvalidParameter.php 

而且參數無效類看起來像Exception_InvalidParameter延伸例外。這與您在選項1中建議的內容非常相似。 我一般都喜歡將我所有的自定義庫類都設置爲/library/custom

-3

創建特定異常類的目的是將其與某些特定功能(數據庫,會話等等)。如果你的功能可以在一個類中充分說明,例如

Class AdminController extends Zend_Controller_Action 
{ 

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

Class LoginException extends Exception { 
} 

注意這兩個類都在同一個文件AdminController.php。這種方法更快,因爲自從載入LoginException以來,不需要自動加載,因爲它在同一個文件中。

+0

這使得'LoginException'類只能使用(id。_throwable_和_catchable_),其中使用了AdminController(id。loaded)。 – CDuv 2012-12-27 10:54:32