FollowMe

PHP: Hooks – Konzepte und Technik


Heute betrachte ich einmal das Thema einfache Hooks und deren Implementierung in PHP. Im folgenden werde ich drei verschiedene einfache Möglichkeiten verstellen Hooks anzuwenden. Der eine oder andere wird dieses Konzept bestimmt schon einmal – vielleicht auch unbewußt – eingesetzt haben.

Was sagt wikipedia zu Hooks?

In der Programmierung bezeichnet der Begriff Hook eine Schnittstelle, mit der fremder Programmcode in eine bestehende Anwendung integriert werden kann, um diese zu erweitern, deren Ablauf zu modifizieren oder um bestimmte Ereignisse abzufangen. Dies kann entweder im Quelltext geschehen, der entsprechend modifiziert wird, über Konfigurationsdateien, die den Ablauf eines fertigen Programms verändern, oder über Aufruf von Funktionen, denen der auszuführende Programmcode in irgendeiner Form mitgegeben wird.

Quelle: http://de.wikipedia.org/wiki/Hook_(EDV)

Weiter geht es mit den Code-Beispielen:

1) Sehr einfach
Hier sehen wir eine sehr einfache Umsetzung. Der Hook wird true oder false gesetzt und in einer Weiche wird entschieden welcher Code ausgeführt werden soll.

1
2
3
4
5
6
7
$hook=true;
 
if($hook) {
   //hook code
}else{
   //bestehender code
}

2) Hook wird als Datei eingebunden
Alle Hookcodes werden als Datei in einem Hook Verzeichnis gespeichert. Existiert diese Datei, so wird der Hook Code eingebunden und ausgeführt – falls nicht wird der bestehende Code ausgeführt.

1
2
3
4
5
6
7
DEFINE('HOOKVERZ','myHooks/')
if(file_exists(HOOKVERZ.'hook_name.php')) {
   //hook code
   include(HOOKVERZ.'hook_name.php');
} else {
    //bestehender code
}

3) Funktionsüberprüfung und -aufruf
In diesem Beispiel wird nach einer Funktion gesucht, die den Hookcode enthält. Die Hook-Bibliothek kann in den PHP Code eingebunden werden oder im Code Header eingebunden werden. Existiert diese Funktion, so wird die Funktion aufgerufen und ausgeführt – falls nicht wird der bestehende Code ausgeführt.

1
2
3
4
5
if (function_exists('myHook')) {
  start_hook();
} else {
  //normal code
}

Weiterführende Links:
http://www.phpblogger.net/…/teil-1/
http://www.phpblogger.net/…/teil-2/
http://www.phpblogger.net/…/teil-3/

Hier noch ein super Beitrag zur Nutzung von Hooks in Typo3:
http://www.hann3mann.de/…/hook-unter-typo3-programmieren/

Die Implementierung von Code-Erweiterungen in Typo3 mittels XCLASS bzw. Hooks finde ich spitzenmäßig umgesetzt. Hier kann man noch einiges lernen. Mehr dazu könnt Ihr in einem der nächsten Beiträge lesen.

Habt Ihr noch weitere Ansätze – vielleicht auch objektorientiert? Ich freue mich auf weitere Vorschläge …





Tags:

Leave a Reply

Kommentarlinks könnten nofollow frei sein.


Über den Author:

Nickname: admin:

Name: MarkBuch

Website: http://wordpress001.webserver.local/author/admin/

Jabber: buechlein@jabber.org

Über Mark Buch: Ich bin als Web-Entwickler mit langjähriger Berufserfahrung tätig und habe Anfang 2010 diesen Blog gestartet. Unter anderem trage ich hier Infos zu den Themen Web-Entwicklung und Web-Design zusammen. Ich freue mich auf Eure Kommentare und anregende Diskussionen!



adobe air Apache2 Apps Blender css debian factory fundstück fundstücke geek news geek wear Grafik-Tutorial html HTML/XHTML html 5 iphone iPhone OS 4.0 ispcp javascript jqtouch jquery jquery plugin linux linux shell Mac mysql os x pdf phonegap PHP PostgreSQL profiling qr code script security SEM SEO shell Technik tooltip typo3 video wallpaper xcode zend framework
 
ads webograf nohostname linkeaugen.de
 
linkeaugen - top image

Twitter timeline

Blogverzeichnis - Blog Verzeichnis bloggerei.de

IE Tester

Copyright 2010 devgeek.de - News, Tutorials & Links  
Templatedesign & Programmierung Mark Buch | Impressum | RSS