search
Homephp教程PHP开发Summary of precautions related to Zend Framework custom Helper class

This article describes the precautions related to Zend Framework custom Helper class. Share it with everyone for your reference, the details are as follows:

Writing a custom Helper class

It is easy to write a custom Helper class, as long as you follow the following principles:

① The class name must be Zend_View_Helper_*, * is the name of the helper. For example, if you are writing a class named "specialPurpose", the class name will be at least "SpecialPurpose". In addition, you should also prefix the class name. It is recommended to use "View_Helper" as part of the prefix: "My_View_Helper_SpecialPurpose". (note case) You will need to pass the prefix (without the underscore) to addHelperPath() or setHelperPath().
② There must be a public method in the class, and the method name is the same as the helper class name. This method will be executed when your template calls "$this->specialPurpose()". In our "specialPurpose" example, the corresponding method declaration could be "public function specialPurpose()".
③ Generally speaking, the Helper class should not echo or print or have other forms of output. It just needs to return a value. Returned data should be escaped.
④ The name of the class file should be the name of the helper method. For example, in the "specialPurpose" example, the file should be saved as "SpecialPurpose.php".

Put the helper class file in your helper path, and Zend_View will automatically load, instantiate, persist, and execute.

The three-dot class file name, class name, and helper method in the class should be consistent to a certain extent.

Posted code:

Two helpers, you can see clearly that they are different. . . . .

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";
  }
}

Use:

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

to add content, add addHelperPath in initView, and you can change it to load application. Configure the path through the ini file configuration item. As follows

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

I hope this article will be helpful to everyone in PHP programming.

For more Zend Framework custom Helper class-related precautions and related articles, please pay attention to the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
1 months agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
1 months agoBy尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Have Crossplay?
1 months agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

WebStorm Mac version

WebStorm Mac version

Useful JavaScript development tools

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

Atom editor mac version download

Atom editor mac version download

The most popular open source editor