Dieser Artikel beschreibt die Vorsichtsmaßnahmen im Zusammenhang mit der benutzerdefinierten Helper-Klasse von Zend Framework. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:
Eine benutzerdefinierte Helper-Klasse schreiben
Das Schreiben einer benutzerdefinierten Helper-Klasse ist einfach, solange Sie die folgenden Prinzipien befolgen:
① 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
Img.php:
class Zend_View_Helper_Img extends Zend_View_Helper_Abstract { public function img() { return "this is a img"; } }
TestHelper.php: Wird in der
class My_View_Helper_TestHelper extends Zend_View_Helper_Abstract { public function testHelper() { return "this is a TestHelper"; } }
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 ( '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; } }
[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
Ich hoffe, dass dieser Artikel für alle hilfreich ist, die sich mit PHP-Programmierung befassen.
Weitere Vorsichtsmaßnahmen und verwandte Artikel zu benutzerdefinierten Zend Framework-Helferklassen finden Sie auf der chinesischen PHP-Website!