Seit mehr als 10 Jahren realisieren die kreativen Köpfe von MountainGrafix professionelle Internet-, Datenbank-, und eCommerce-Applikationen für Unternehmen, Privatanwender, Vereine und die öffentliche Hand.

Einfaches loggen mit Firebug und dem Zend Framework

Abgelegt von Sascha Schoppengerd am 06.05.2010 um 07:00 Uhr

Logfiles werden in fast jeder Entwicklungsumgebung benötigt und daher finden sich für diese Aufgabe auch zahlreiche unterschiedliche Implementierungen. In der Regel werden Logfiles einfach als *.txt oder *.log Datei auf dem Server abgelegt und bei Bedarf mit einem geeignetem Editor oder direkt in der IDE geöffnet.

Seit der Version 1.6 bietet das Zend Framework jedoch bereits eine sehr komfortable Möglichkeit, die Ausgaben direkt im Firefox-Browser zu loggen. Dazu benötigen wir zunächst die Erweiterungen Firebug und FirePHP.

Da diese beiden Addons ja quasi zur Grundausstattung eines Webentwicklers gehören, werde ich auf die Funktionsweise hier auch nicht mehr näher eingehen, sondern ich gehe direkt zur Implementierung der Funktion selbst über.

mehr…

Ein einfacher Gravatar ViewHelper

Abgelegt von Sascha Schoppengerd am 14.04.2010 um 15:39 Uhr

In jedem Webprojekt gibt es Elemente, die mehrfach in einem Template vorkommen können. In der Regel sind das Boxen, die eine Fehler- oder Erfolgsmeldung zurückgeben, aber auch Gravatar-Ausgaben gehören zu den Dingen, die man immer mal wieder an verschiedenen Stellen eines Projektes gebrauchen kann.

Innerhalb des recht umfangreichen Zend Frameworks gibt es für solche Fälle bekanntlich die so genannten ViewHelper. Diese Klassen kapseln komplexe Ausgaben in einzelnen Methoden, so das diese mehrfach in der Ausgabe verwendet werden können.

Um mir die Ausgabe der Gravatare in einem unsere Kundenprojekte nun möglichst einfach zu gestalten, habe ich mir heute einen entsprechenden ViewHelper gebastelt.

Das ganze ist natürlich nix großes oder aufregendes, aber vielleicht kann der ein oder andere Einsteiger mit dem Snippet ja doch etwas anfangen.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/**
 * Simple Gravatar View Helper
 * 
 * @author Sascha Schoppengerd <info@mountaingrafix.eu>
 * @copyright by MountainGrafix <http://www.mountaingrafix.eu>
 */
class Zend_View_Helper_Gravatar extends Zend_View_Helper_Abstract {
 
    /**
     * @var string 
     */
    protected $_gravatarUrl  = "http://www.gravatar.com/avatar.php?";
 
    /**
     * @var string
     */
    protected $_defaultImage = "http://domain.com/image75x75.png";
 
    /**
     * Simple Gravatar View Helper
     * 
     * @param string $email
     * @param string $rating
     * @param integer $size
     * 
     * @return string
     */
    public function gravatar($email, $rating = 'G', $size = 48) {
 
        $params = array(
            'gravatar_id' => md5(strtolower($email)),
            'rating'      => $rating,
            'size'        => $size,
            'default'     => urlencode($this->_defaultImage)
        );
 
        return $this->_url . '?' . http_build_query($params, '', '&amp;');
    }
}

Die Anwendung des ViewHelpers in der Ausgabe ist denkbar einfach:

1
<img src="<?= $this->gravatar('deine@email.de', 'G', 48); ?>" />

Zend Framework 1.9.6 veröffentlicht

Abgelegt von Sascha Schoppengerd am 25.11.2009 um 13:04 Uhr

Seit wenigen Stunden steht die Version 1.9.6 des kostenlosen Zend Framework zum Download bereit. Das Release enthält mehr als 60 Bugfixes und kann auf der offiziellen Projektseite heruntergeladen werden.

Zend Framework: Beispiel für ein Auth Plugin

Abgelegt von Sascha Schoppengerd am 23.10.2009 um 10:41 Uhr

Wenn ein Projekt über einen geschlossenen Nutzer- oder Adminbereich verfügt, dann steht man immer wieder vor der Problematik, dass man den Login-Status des Besuchers auf vielen Unterseiten abfragen und ggf. auswerten muss. Bei großen Projekten kann das manchmal ziemlich mühselig werden, doch wenn das Projekt auf dem Zend Framework basiert, dann läßt sich so etwas mit Hilfe der Controller-Plugins sehr schnell umsetzen.

Zunächst benötigen wir innerhalb des Plugin’s die aktive Objekt-Instanz von Zend_Auth. Das unser Beispiel jedoch auch eine Rechteverwaltung auf Basis von Zend_Acl besitzt, lesen wir die dazu notwendige Objekt-Instanz gleich mal mit ein.

1
2
$aclObject = Zend_Registry::get('Zend_Acl');
$authObject = Zend_Auth::getInstance();

mehr…

Modulspezifisches LayoutScript im ZF

Abgelegt von Sascha Schoppengerd am 21.10.2009 um 15:10 Uhr

Auch wenn durch die Einführung von Zend_Application der Initialisierungsprozess einer Anwendung erheblich beschleunigt wurde, so bleibt noch immer der Wehrmutstropfen, dass in der zentralen application.ini noch immer kein modulspezifisches Layout geladen werden kann, da der Dispatch Prozeß in der Bootstrap-Datei noch nicht gestartet wurde.

Was also tun, wenn wir z.B. für einen Adminbereich ein vollkommen neues LayoutScript benötigen? Genau vor dieser Frage stand ich heute schon den ganzen Tag und wenn das Zend Framework schon ziemlich weit verbreitet ist, waren mit Hilfe der Suchmaschinen nur wenige Informationen zu diesem Thema zu finden.

Aktuell sieht der Layout-Abschnitt meiner application.ini wie folgt aus:

1
2
resources.layout.layout = "default"
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"

Zunächst hatte ich daran gedacht, das neue Layout in jedem Controller des Adminbereiches innerhalb der Methode init() zu setzen, doch das würde ja bedeuten, dass ich allen Controllern den gleichen Code hinterlegen muss und das wäre wohl ziemlich ineffektiv.

Die Lösung wäre also, denn Code automatisch bei jedem Aufruf des Admin-Moduls zu starten um so das LayoutScript zentral für alle abhängigen Controller zu setzen. Leider kommt man immer viel zu spät auf die Möglichkeit, den FrontController mit Hilfe von Plugins zu erweitern und so hat es auch bei mir eine ganze Weile gedauert, bis auf die folgende Lösung gekommen bin. mehr…