Zend框架:渲染如果存在

史蒂芬勞埃德沃特金斯 ,星期日二零一零年十二月十二日下午4時19分

綜述

這是一個快速後,討論很簡單,我創建的視圖助手呈現Zend框架風格的視圖文件只有當它存在。 一般要求代碼來呈現一個文件,不存在將拋出一個異常。 因此我創建了一個包裝器在Zend_View::render()的方法,確定文件是否存在,若有渲染,否則只是簡單地返回一個空字符串。

Joost的j的巴克IJmuiden - http://www.flickr.com/photos/joost-ijmuiden/

動機

的動機,因為這是,我有一個控制器/視圖 /等,這也顯示了稍有不同的輸出取決於一個參數。 這些產出有一些相關的幫助信息中定義,有些則沒有。 我不希望有空文件掛在我的代碼一樣多,因為我不希望有嘗試 {} {}塊趕上我認為文件。 因此,我很快就創造了一個'渲染,如果存在'視圖助手用在我的代碼。

我知道,在這裡我可以剛剛結束的Render方法在try {} {}內趕上視圖助手本身。 然而在這種情況下拋出的任何異常所呈現的觀點不泡沫備份在案件出亂子。

它如何工作

創建的視圖助手通過擴展 Zend_View_Helper_Abstract為正常,注射了這種看法時使用。 該視圖助手通過查看文件,你希望呈現:

  $這個 -> renderIfExists('信息- box.phtml'); 

內部對象採集腳本路徑從視圖對象和循環對他們試圖找到該文件:

     / **
      *檢查是否一個視圖腳本存在
      *
      * @返回布爾
      * /
    保護功能_fileExists()
     {
        這個路徑 = $ $ ->“查看-> getScriptPaths();
        的foreach($路徑路徑美元){
            如果(file_exists($路徑。$此-> _file)){
                返回true;
             }
         }
        返回false;
     } 

如果找到一個匹配的文件,它使用標準 Zend_View的::render()方法,否則返回一個空字符串。

綜述

這是一個非常簡單的視圖助手來呈現一個視圖文件,如果它存在,只是返回一個空字符串,如果沒有。 它不使用try {} {}塊趕上這將阻止任何異常被拋出更深冒出來,使自己的認識。 相反,它遍歷腳本路徑定義在視圖對象,並試圖檢測該文件才去呈現它。

完整的文件可以找到我的GitHub的回購協議

給一個答复













全景主題 Themocracy

現在 7訪客在線
3位客人,4殭屍,0位會員
最大遊客今日:23日上午04時 19分聯合技術
本月:26日2011年7月5日上午12點 35分聯合技術
今年:130 28-03-2011下午10時 40聯合技術
所有時間:130 28-03-2011下午10時 40聯合技術