この記事では、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 ( 'view' ); $view = $this->getResource ( 'view' ); $view->doctype ( 'XHTML1_STRICT' ); } protected function _initView() { $view = new Zend_View (); $view->setEncoding ( 'UTF-8' ); $view->doctype ( 'XHTML1_STRICT' ); $options = $this->getOptions (); $viewOptions = $options ['resources']['view']['helperPath']; 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; } }
この記事が、PHP プログラミングに携わる皆様のお役に立てれば幸いです。
Zend Framework カスタム ヘルパー クラス関連のメモと概要に関するその他の記事については、PHP 中国語 Web サイトに注目してください。