Maison > php教程 > PHP开发 > le corps du texte

Résumé des précautions liées à la classe Helper personnalisée de Zend Framework

高洛峰
Libérer: 2016-12-27 14:23:58
original
1486 Les gens l'ont consulté

Cet article décrit les précautions liées à la classe Helper personnalisée de Zend Framework. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

Écrire une classe Helper personnalisée

Écrire une classe Helper personnalisée est facile, à condition de suivre les principes suivants :

① Le nom de la classe doit être Zend_View_Helper_*, * est le nom de l'assistant. Par exemple, si vous écrivez une classe nommée "specialPurpose", le nom de la classe sera au moins "SpecialPurpose". De plus, vous devez également préfixer le nom de la classe. Il est recommandé d'utiliser "View_Helper" dans le préfixe : "Mon_View_Helper_SpecialPurpose". (notez le cas) Vous devrez transmettre le préfixe (sans le trait de soulignement) à addHelperPath() ou setHelperPath().
② Il doit y avoir une méthode publique dans la classe et le nom de la méthode est le même que le nom de la classe d'assistance. Cette méthode sera exécutée lorsque votre modèle appelle "$this->specialPurpose()". Dans notre exemple "specialPurpose", la déclaration de méthode correspondante pourrait être "public function specialPurpose()".
③ De manière générale, la classe Helper ne doit pas faire écho, ni imprimer ni avoir d'autres formes de sortie. Il lui suffit de renvoyer une valeur. Les données renvoyées doivent être échappées.
④ Le nom du fichier de classe doit être le nom de la méthode d'assistance. Par exemple, dans l'exemple "specialPurpose", le fichier doit être enregistré sous "SpecialPurpose.php".

Placez le fichier de classe d'assistance dans votre chemin d'assistance et Zend_View se chargera, instanciera, persistera et s'exécutera automatiquement.

Le nom du fichier de classe à trois points, le nom de la classe et la méthode d'assistance dans la classe doivent être cohérents dans une certaine mesure.

Publiez le code :

Deux assistants, voyez bien, leurs différences. . . . .

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;
  }
}
Copier après la connexion

application/views/helpers

Img.php :

class Zend_View_Helper_Img extends Zend_View_Helper_Abstract
{
  public function img()
  {
    return "this is a img";
  }
}
Copier après la connexion

TestHelper.php : utilisé dans

class My_View_Helper_TestHelper extends Zend_View_Helper_Abstract
{
  public function testHelper()
  {
    return "this is a TestHelper";
  }
}
Copier après la connexion

action :

<?php echo $this->doctype() ?>
<?php echo $this->img() ?>
<?php echo $this->testHelper() ?>
Copier après la connexion

contenu supplémentaire, ajoutez addHelperPath dans initView, vous pouvez le modifier pour charger l'application. Configurez le chemin via l'élément de configuration du fichier ini. Comme suit

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;
 }
}
Copier après la connexion
[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
Copier après la connexion

J'espère que cet article sera utile à tout le monde dans la programmation PHP.

Pour plus d'articles liés au résumé de la classe Helper personnalisée de Zend Framework et aux articles connexes, veuillez prêter attention au site Web PHP chinois !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Recommandations populaires
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!