Aug 16

Ich denke ich bin nicht der einzige Apple User der eigentlich konsequent irgendwelche PHP Scripte auf seinem lokalen Rechner im Hintergrund laufen lässt. Beispielsweise läuft bei mir auf der Kommandozeile durchgehend ein Script welches eine Liste von Domains auf seine Verfügbarkeit checkt (ich bin einfach heiß auf die Domains).

Bisher habe ich mir sobald eine Domain frei geworden ist eine eMail mit der Info geschickt. Die Lösung über die eMail hat natürlich den entscheidenen Nachteil das man eine ordentliche Zeitverzögerung hat. Um dieses Problem in den Griff zu bekommen habe ich mich ein wenig mit Growl beschäftigt.

Eine kurze Info zu Growl (Wikipedia):

Growl ist ein globales Benachrichtigungssystem für Mac OS X. Programme informieren den Benutzer mittels Growl über wichtige Ereignisse. Die Prioritäten dieser kann der Benutzer vollständig konfigurieren. So müssen Softwareentwickler keine eigenen Benachrichtigungssysteme mehr entwerfen, sondern die Meldungen nur noch an Growl weitergeben.

Growl ist eigentlich ein aus Mac OS 9 (und früher) stammendes Feature. Dort wurde der Benutzer ebenfalls systemweit darüber informiert wenn ein Programm die Aufmerksamkeit des Benutzers benötigte.

Da Growl keine Schnittstelle beinhaltet welche direkt über PHP angesprochen werden kann, musste ich den Umweg über die Kommandozeile gehen. Dank der PHP-Funktion exec() ncht wirklich ein Problem.

Wer seine Benachrichtigungen nun ebenfalls über Growl absetzen wil, für den ist die nun folgende PHP Funktion bestimmt recht hilfreich.

function GrowlNotification($message, $image, $name)
{
$call = "growlnotify -w -m '{$message}' "
. "-n '{$name}' "
. "-p 2 --image {$image}";

exec($call, $response, $return);

if ($return === 0)
{
return true;
}
else
{
return false;
}
}
Nun bleibt mir nichts anderes mehr zu sagen als Viel Spaß :-)

2 Responses to “Codeschnipsel – Growl Notification via PHP”

  1. Valentin Says:

    Cool! Danke werde ich mal ausprobieren weiß aber im Moment noch nicht so richtig wofür.. egal irgendwas wird mir schon einfallen. Apple ftw :)

  2. Valentin Says:

    Nachtrag:
    VD:~ user$ growlnotify
    -bash: growlnotify: command not found

    geht gar nicht bei mir?!

    liegt wohl an leopard: http://hasseg.org/blog/?p=111

Leave a Reply