ホームページ  >  記事  >  php教程  >  Zend Frameworkのカスタムヘルパークラスに関する注意事項まとめ

Zend Frameworkのカスタムヘルパークラスに関する注意事項まとめ

高洛峰
高洛峰オリジナル
2016-12-27 14:23:581447ブラウズ

この記事では、Zend Framework のカスタム ヘルパー クラスに関する注意事項について説明します。参考のために皆さんと共有してください。詳細は次のとおりです:

カスタム ヘルパー クラスの作成

次の原則に従う限り、カスタム ヘルパー クラスの作成は簡単です:

① クラス名は Zend_View_Helper_* である必要があります。 , * はヘルパーの名前です。たとえば、「specialPurpose」という名前のクラスを作成する場合、クラス名は少なくとも「SpecialPurpose」にする必要があります。また、接頭辞の一部として「View_Helper」を使用することをお勧めします。 「My_View_Helper_SpecialPurpose」。 (ケースに注意してください) addHelperPath() または setHelperPath() にプレフィックス (アンダースコアなし) を渡す必要があります。
② クラス内にパブリックメソッドが存在し、メソッド名はヘルパークラス名と同じである必要があります。このメソッドは、テンプレートが「$this->specialPurpose()」を呼び出したときに実行されます。 「specialPurpose」の例では、対応するメソッド宣言は「public functionspecialPurpose()」になります。
③ 一般に、ヘルパー クラスは、エコー、印刷、またはその他の形式の出力をすべきではありません。値を返すだけで済みます。返されたデータはエスケープする必要があります。
④ クラスファイルの名前はヘルパーメソッドの名前にする必要があります。たとえば、「specialPurpose」の例では、ファイルは「SpecialPurpose.php」として保存されます。

ヘルパー クラス ファイルをヘルパー パスに置くと、Zend_View が自動的にロード、インスタンス化、永続化、および実行されます。

クラスファイル名、クラス名、クラス内のヘルパーメソッドの3点はある程度一貫している必要があります。

投稿コード:

2 人のヘルパー、違いがはっきりとわかります。 。 。 。 。

バージョン 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";
  }
}

アクションで使用:

<?php echo $this->doctype() ?>
<?php echo $this->img() ?>
<?php echo $this->testHelper() ?>

追加コンテンツ、init に addHelper を追加ビューパス、アプリケーションをロードするように変更できます。 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;
 }
}
rreeee

この記事が、PHP プログラミングに携わる皆様のお役に立てれば幸いです。

Zend Framework カスタム ヘルパー クラス関連のメモと概要に関するその他の記事については、PHP 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。