Heim  >  Artikel  >  Backend-Entwicklung  >  Verwandtes Wissen über die benutzerdefinierte Hilfsklasse von Zend Framework

Verwandtes Wissen über die benutzerdefinierte Hilfsklasse von Zend Framework

不言
不言Original
2018-06-15 17:04:151492Durchsuche

In diesem Artikel werden hauptsächlich die Vorsichtsmaßnahmen im Zusammenhang mit der benutzerdefinierten Hilfsklasse von Zend Framework vorgestellt, die relevanten Prinzipien und Implementierungstechniken zum Schreiben einer benutzerdefinierten Hilfsklasse zusammengefasst und analysiert. Freunde in Not können sich darauf beziehen

In diesem Artikel geht es um Zend Vorsichtsmaßnahmen im Zusammenhang mit der benutzerdefinierten Hilfsklasse des Frameworks. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Eine benutzerdefinierte Helper-Klasse schreiben

Eine benutzerdefinierte Helper-Klasse zu schreiben ist einfach, solange Sie sich daran halten Die folgenden Prinzipien: Kann:

① Der Klassenname muss Zend_View_Helper_* sein, * ist der Name des Helfers. Wenn Sie beispielsweise eine Klasse mit dem Namen „specialPurpose“ schreiben, lautet der Klassenname mindestens „SpecialPurpose“. Außerdem sollten Sie dem Klassennamen ein Präfix voranstellen. Es wird empfohlen, „View_Helper“ als Teil des Präfixes zu verwenden: „My_View_Helper_SpecialPurpose“. (Groß- und Kleinschreibung beachten) Sie müssen das Präfix (ohne Unterstrich) an addHelperPath() oder setHelperPath() übergeben.
② Die Klasse muss eine öffentliche Methode enthalten und der Methodenname muss mit dem Namen der Hilfsklasse identisch sein. Diese Methode wird ausgeführt, wenn Ihre Vorlage „$this->specialPurpose()“ aufruft. In unserem „specialPurpose“-Beispiel könnte die entsprechende Methodendeklaration „public function specialPurpose()“ lauten.
③ Im Allgemeinen sollte die Helper-Klasse kein Echo oder Drucken oder andere Ausgabeformen haben. Es muss lediglich ein Wert zurückgegeben werden. Zurückgegebene Daten sollten maskiert werden.
④ Der Name der Klassendatei sollte der Name der Hilfsmethode sein. Im Beispiel „specialPurpose“ sollte die Datei beispielsweise als „SpecialPurpose.php“ gespeichert werden.

Fügen Sie die Hilfsklassendatei in Ihren Hilfspfad ein, und Zend_View wird automatisch geladen, instanziiert, beibehalten und ausgeführt.

Der dreipunktige Klassendateiname, der Klassenname und die Hilfsmethode in der Klasse sollten bis zu einem gewissen Grad konsistent sein.

Posten Sie den Code:

Zwei Helfer, sehen deutlich, ihre Unterschiede. . . . .

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

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

In Aktion verwendet:

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

Zusätzlicher Inhalt, addHelperPath in initView hinzufügen, Sie können es ändern, um die Anwendung zu laden. Konfigurieren Sie den Pfad über das Konfigurationselement der INI-Datei. Wie folgt

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

Das Obige ist der gesamte Inhalt dieses Artikels, Ich hoffe, dass es für alle nützlich sein wird. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website!

Verwandte Empfehlungen:

Über die Verwendung des Zend Framework Action Controllers

Über die Nutzungsanalyse der Zend_Registry-Komponente in Zend Framework

Zend Nutzungsanalyse von Bootstrap-Klassen im Framework

Das obige ist der detaillierte Inhalt vonVerwandtes Wissen über die benutzerdefinierte Hilfsklasse von Zend Framework. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:js- und PHP-VerschachtelungNächster Artikel:js- und PHP-Verschachtelung