關於Zend Framework自訂Helper類別的相關知識

不言
發布: 2023-04-01 11:52:02
原創
1468 人瀏覽過

這篇文章主要介紹了Zend Framework自訂Helper類別相關注意事項,總結分析了編寫自訂Helper類別的相關原則與實作技巧,需要的朋友可以參考下

本文講述了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";
  }
}
登入後複製

TestHelper.php:

class My_View_Helper_TestHelper extends Zend_View_Helper_Abstract
{
  public function testHelper()
  {
    return "this is a TestHelper";
  }
}
登入後複製

##action中使用:

<?php echo $this->doctype() ?>
<?php echo $this->img() ?>
<?php echo $this->testHelper() ?>
登入後複製

附加內容,在initView中加入addHelperPath,可以改成採用載入application。 ini檔案配置項目的方式把路徑進行設定。如下

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap {
 protected function _initDoctype() {
 $this->bootstrap ( &#39;view&#39; );
 $view = $this->getResource ( &#39;view&#39; );
 $view->doctype ( &#39;XHTML1_STRICT&#39; );
 }
 protected function _initView() {
 $view = new Zend_View ();
 $view->setEncoding ( &#39;UTF-8&#39; );
 $view->doctype ( &#39;XHTML1_STRICT&#39; );
 $options = $this->getOptions ();
 $viewOptions = $options [&#39;resources&#39;][&#39;view&#39;][&#39;helperPath&#39;];
 if (is_array ($viewOptions)) {
  foreach($viewOptions as $helperName =>$path)
  {
  $view->addHelperPath ( $path, $helperName );
  }
 }
 $viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer ();
 Zend_Controller_Action_HelperBroker::addHelper ( $viewRenderer );
 $viewRenderer->setView ( $view );
 return $view;
 }
}
登入後複製

[production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = "Application"
resources.view[] =
resources.view.helperPath.My_View_Helper = "../application/views/helpers"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 1
[staging : production]
[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1
登入後複製

以上就是本文的全部內容,希望對大家的學習有幫助,更多相關內容請關注PHP中文網!

相關推薦:

關於Zend Framework動作控制器的用法

關於Zend Framework中Zend_Registry元件的用法分析

Zend Framework中Bootstrap類別的用法解析

以上是關於Zend Framework自訂Helper類別的相關知識的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!