Zend Framework View Helper mit mehr als nur einer Methode

1. Oktober 2010 von Andreas Yalcin [permalink]

Die View Helper im Zend Framework helfen dabei Templates von zu viel Darstellungslogik zu befreien, wenn es darum geht mehr als nur den Inhalt einer Variablen auszugeben. Innerhalb eines Templates kann man beispielsweise mit $this->myHelperMethod() eine Methode aufrufen, um den Rückgabewert im Template auszugeben. Für dieses Beispiel muss die Helfer-Klasse Zend_View_Helper_MyHelperMethod heißen.

Typischerweise besteht eine Helper-Klasse aus genau einer Methode. Möchte man verschiedene, oft benötigte Methoden in so einer Helper-Klasse strukturieren, steht man zunächst vor dem Problem, dass man diese nicht aufrufen kann, da mit $this->myHelperMethod() eben nur diese Methode der Klasse MyHelperMethod aufrufen kann, oder man erstellt für jede weitere Methode die man benötigt eine eigene Klasse.

Umgehen kann man dass, in dem die Methode die eigene Instanz zurückgibt, und den Aufruf einer andreren Methode verkettet.
Nehmen wir einmal an, wir hätten eine Helper-Klasse namens StrToolBox, die die Methoden truncate(), upper(), lower() und length()bereitstellt. Um diese Methoden in einem Template nutzen zu können, geht man wie folgt vor:

<p><?php echo $this->strToolBox()->truncate($text, 0,20); ?> </p>

<strong><?php echo $this->strToolBox()->upper(‘I am uppercase‘); ?> </strong>

<small><?php echo $this->strToolBox()->lower(‘I am lowercase‘); ?> </strong>

<p>Text length is: <?php echo $this->strToolBox()->length($text); ?> </p>

Die Klasse dazu sieht wie folgt aus:

class Zend_View_Helper_StrToolBox {

    public function strToolBox() {
        return $this;
    }

    public function truncate($text) {
        //den code fuer truncate
    }

    // weitere Methoden

}

Tags:
Kategorie: PHP, Softwareentwicklung | 1 Kommentar »

Timeoutblocker in Zend ActiveMQ-Implementierung

16. Juni 2010 von Stephan Erdmann [permalink]

Vor kurzem hatte ich das Problem, dass der ActiveMQ-Server in unregelmäßigen Abständen zwar noch per Socket erreichbar war, aber der eigentliche Server nicht mehr funktionstüchtig war, d.h. dass der Socket noch geöffnet werden konnte aber anschließende reads oder writes nicht mehr vom Server abgearbeitet wurden. Ich gehe davon aus, dass der Fehler durch eine fehlerhafte Konfiguration enstanden ist, da der ActiveMQ-Server seit einigen Umstellungen stabil läuft.

Unangehm war jedoch, dass die Zend ActiveMQ-Implementierung bei diesem Problem nicht besonders gut klar kam und sich nach 60 Sekunden mit einer Timeoutmeldung verabschiedetete statt nach ein paar Sekunden eine Exception zu werfen, wie ich es eigentlich erwartet hätte.
weiter lesen »

Tags: ,
Kategorie: PHP | keine Kommentare »

PHPUnit – Testing mit dem Zendframework – Teil 1

9. April 2010 von Stephan Erdmann [permalink]

Das Zend-Framework bietet für das Unit-Testing die Einbindung von PHPUnit von Haus aus mit. Das Aufsetzen von PHPUnit und die Basisnutzung von Unittests mit PHP ist Gegenstand zahlreicher Howtos. An dieser Stelle möchte ich einen Einblick geben, wie sich die Unittests in der Praxis nutzen lassen. Geplant sind hierzu die folgenden Abschnitte, die in den folgenden Wochen hier im Blog zu finden sein werden:

Teil 1 : Setup
Teil 2 : Model-Unittests
Teil 3 : Controller-Unittests
Teil 4 : Session-Anbindung an die Tests

weiter lesen »

Tags: , ,
Kategorie: Allgemein, PHP | 1 Kommentar »

ActiveMQ mit PHP und dem Zendframework

19. Februar 2010 von Stephan Erdmann [permalink]

Das Zendframework bietet eine vollständige Implementierung für die Kommunikation mit ActiveMQ mit dem Protokoll STOMP. Die Konfugarion erfolgt über das $options-Array, welches dem Zend_Queue-Konstruktor übergeben wird.

weiter lesen »

Tags: ,
Kategorie: PHP, Softwareentwicklung | keine Kommentare »

Firebug/FirePHP und das Zend Framework

25. April 2009 von Ludwig Ostrowski [permalink]

Ein sehr interessantes Interface bietet das Zend Framework seit der Version 1.6 an. Es geht speziell um die Logging-Funktionalität, welche mit der Zend_Log_Writer_Firebug Klasse erweitert wurde. Somit besteht nun die Möglichkeit, sich Log- bzw. Debug-Meldungen direkt in Firebug auszugeben. Dies kann wiederrum in manchen Situationen eine hilfreiche Alternative zu Xdebug oder zur Ausgabe mittels print_r() bzw. var_dump() sein.

weiter lesen »

Tags: , , , ,
Kategorie: PHP, Softwareentwicklung | keine Kommentare »