ホームページ > バックエンド開発 > PHPチュートリアル > Zend Framework カスタム ヘルパー クラスに関する関連知識

Zend Framework カスタム ヘルパー クラスに関する関連知識

不言
リリース: 2023-04-01 11:52:02
オリジナル
1495 人が閲覧しました

この記事は主に Zend Framework のカスタム ヘルパー クラスに関する注意事項を紹介し、カスタム ヘルパー クラスの作成に関連する原則と実装テクニックを要約および分析しています。必要な友人は参照してください。

この記事は 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() ?>
ログイン後にコピー

追加コンテンツ、initView に addHelperPath を追加し、アプリケーションを読み込むように変更できます。 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 中国語 Web サイトに注目してください。

関連する推奨事項:

Zend Framework アクション コントローラーの使用法について

Zend の Zend_Registry コンポーネントの使用分析についてフレームワーク

Zend Framework での Bootstrap クラスの使用状況分析

以上がZend Framework カスタム ヘルパー クラスに関する関連知識の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート