首頁  >  文章  >  php教程  >  Zend Framework自訂Helper類別相關注意事項總結

Zend Framework自訂Helper類別相關注意事項總結

高洛峰
高洛峰原創
2016-12-27 14:23:581506瀏覽

本文講述了Zend Framework自訂Helper類別相關注意事項。分享給大家參考,具體如下:

編寫自訂的Helper類

編寫自訂的Helper類別很容易,只要遵循以下幾個原則即可:

① 類別名稱必須是Zend_View_Helper_*,*是helper的名稱。例如,你在寫一個名為“specialPurpose”的類,類名將至少是"SpecialPurpose",另外你還應該給類名加上前綴,建議將“View_Helper”作為前綴的一部分:“My_View_Helper_SpecialPurpose”。 (注意大小寫)你將需要將前綴(不包含底線)傳遞給addHelperPath() 或 setHelperPath()。
② 類別中必須有一個public的方法,該方法名稱與helper類別名稱相同。這個方法將會在你的模板呼叫"$this->specialPurpose()"時執行。在我們的「specialPurpose」範例中,對應的方法宣告可以是 “public function specialPurpose()”。
③ 一般來說,Helper類別不應該echo或print或有其它形式的輸出。它只需要回傳值就可以了。傳回的資料應被轉義。
④ 類別檔案的命名應該是helper方法的名稱,例如在"specialPurpose"範例中,檔案要存為「SpecialPurpose.php」。

把helper類別的檔案放在你的helper路徑下, Zend_View就會自動載入,實例化,持久化,並且執行。

三點類別檔案名稱,類別名稱,類別中helper方法,保持某種程度的一致。

貼代碼:

兩個helper,看清楚了,他們的不同。 。 。 。 。

version   zf 1.10

Bootstrap.php

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap {
  protected function _initDoctype() {
    $this->bootstrap ( 'view' );
    $view = $this->getResource ( 'view' );
    $view->doctype ( 'XHTML1_STRICT' );
  }
  protected function _initView() {
    $view = new Zend_View ();
    $view->setEncoding ( 'UTF-8' );
    $view->doctype ( 'XHTML1_STRICT' );
    $view->addHelperPath('../application/views/helpers', 'My_View_Helper');
    $viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer();
    Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);
    $viewRenderer->setView($view);
    return $view;
  }
}

application/views/helpers

Img.php:

class Zend_View_Helper_Img extends Zend_View_Helper_Abstract
{
  public function img()
  {
    return "this is a img";
  }
}
addHelperPath,可以改成採用載入application。 ini檔案配置項目的方式把路徑進行設定。如下

class My_View_Helper_TestHelper extends Zend_View_Helper_Abstract
{
  public function testHelper()
  {
    return "this is a TestHelper";
  }
}
<?php echo $this->doctype() ?>
<?php echo $this->img() ?>
<?php echo $this->testHelper() ?>

希望本文所述對大家PHP程式設計有幫助。

更多Zend Framework自訂Helper類相關注意事項總結相關文章請關注PHP中文網!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn