Endlich ist es soweit das lang ersehnte Zend Framework Poster ist da. Und kaum ist es da, hängt es schon an einem geeigneten Platz der Wand und wird von den Kollegen bestaunt! Auf dem DIN A0 großen Poster findet man nützliche Information zu den Bereichen: Application & Controller, Validieren & Filtern sowie View & Layout.
Gesponsert wurde das Poster von der Firma Mayflower, bei denen ich mich hiermit herzlich bedanke!
Ja ja, ein Leben ohne Apache mod_rewrite ist schwer! Eigentlich wollte ich nur PHP5 und weniger bezahlen als ich mein Webhosting Paket geändert habe. Und jetzt habe ich mehr Webspace, zwei Datenbanken, mehr E-mail Speicher aber leider kein mod_rewrite mehr!
Somit funktionieren meine tollen suchmaschinenoptimierten Permalinks ala http://www.burak-yueksel.de/2010/01/sample-post/ auch nicht mehr und alle links von externen Webseiten gehen somit ins Leere. Dumm gelaufen!
Seit ca. 2 Monaten benutze ich jetzt die orginal Firmware (Ver.4.30.13) für meinen Linksys WRT54GL-Router und muss sagen: So ein Müll. Ständig ist der Router offline, die WLAN Verbindung steht aber man kommt nicht auf die Administrations Seite, ständig muss resetet werden. Und überhaupt fühlt sich alles so lahm an.
Nun hab ich wieder OpenWRT aufgespielt und da schau her alles funktioniert wunderbar! Vorallem ist die Verbindung spührbar schneller. Fazit: Nie wieder orginal Firmware!
Mittwoch, 23.12.2009
in PHP
Um eine SOAP API zu programmieren benötigen wir erstmal eine Klasse, die alle Funktionen unserer neuen Schnittstelle bereitstellt.
<?php
// soap-server.php
$zendPath = '...';
set_include_path(get_include_path().PATH_SEPARATOR.$zendPath);
require 'Zend/Loader/Autoloader.php';
$autoloader = Zend_Loader_Autoloader::getInstance();
class MeinWebservice {
/**
* Gibt den Wert mal 10 zurück
*
* @param int $inputParam
* @return int
*/
public function test1($inputParam) {
return $inputParam * 10;
}
/**
* Addiert die Werte
*
* @param int $inputParam1
* @param int $inputParam2
* @return int
*/
public function test2($inputParam1, $inputParam2) {
return $inputParam1 + $inputParam2;
}
}
?>
Unsere Klasse “MeinWebservice” stellt also die zwei Funktionen test1 und test2 bereit. Damit diese Funktionen aufgerufen werden können, erstellen wir jetzt unseren SOAP Server.
<?php
// soap-server.php
$wsdl = 'http://localhost/soap/soap-server.php?wsdl=1';
if($_GET['wsdl'] == 1) {
$autodiscover = new Zend_Soap_AutoDiscover();
$autodiscover->setClass('MeinWebservice');
$autodiscover->handle();
} else {
$server = new Zend_Soap_Server($wsdl);
$server->setClass('MeinWebservice');
$server->handle();
}
?>
Mit $server->setClass() übergeben wir dem Zend_Soap_Server Objekt unsere Klasse. Um die WSDL automatisch aus unserer Klasse zu generieren verwenden wir Zend_Soap_AutoDiscover. Die WSDL wird aber nur erzeugt wenn der $_GET Parameter ‘wsdl’ auf 1 gesetzt wird. (Damit die WSDL richtig generiert wird muss der Docblock korrekt sein.) Ist ‘wsdl’ ungleich 1 übernimmt Zend_Soap_Server die verarbeitung.
Um unseren Server zu testen erstellen wir uns einen Soap-Client und rufen unsere Funktionen auf.
<?php
// soap-client.php
$zendPath = '...';
set_include_path(get_include_path().PATH_SEPARATOR.$zendPath);
require 'Zend/Loader/Autoloader.php';
$autoloader = Zend_Loader_Autoloader::getInstance();
$client = new Zend_Soap_Client("http://localhost/soap/soap-server.php?wsdl=1");
$result = $client->test1(10);
var_dump($result);
$result = $client->test2(50, 35);
var_dump($result);
?>
Weitere Informationen zu SOAP gibt’s unter http://de.wikipedia.org/wiki/SOAP und im Zend Framework Refernce Guide unter http://framework.zend.com/manual/en/zend.soap.html#zend.soap.server.
Beim Flashen meines Linksys Routers (WRT54GL) ist irgendwas schief gegangen und ich hatte keinen Zugriff mehr. Pingen ging noch aber SSH und die Weboberfläche waren nicht mehr erreichbar. Als ich bemerkt habe das die Power LED ständig blinkt wurde mir klar das irgendwas nicht stimmte. Tja was tun wenn man keine Verbindung aufbauen kann um neu zu Flashen?
Die Lösung heißt: Flashen via tftp! Hier gibts ne gute Anleitung für Windows PC’s.
Statt OpenWrt kann man auch die orginal Firmware von der Linksys-Website benutzen!
Da steht man in der Schlange vor dem Bankautomaten und wartet (genervt) bis man endlich dran ist und dann passiert sowas! Eine Fehlermeldung von Microsoft Visual C++. Super programmiert!

Als jahrelanger Thunderbird User muss ich sagen: Wer Gnome installiert hat und Gmail benutzt sollte schnell zu Evolution wechseln. Evolution bietet (ohne Plugins zu installieren) vollen Gmail Support! Klar jeder halbwegs gute Mail-Client unterstützt pop3 bzw. imap aber Evolution unterstützt zusätzlich den Google Kalender und die Gmail-Kontakte. So hat man alle wichtigen Google dienste in einem PIM vereint. Ok ich gebs zu hab Evolution auch nur getestet damit das neue Benachrichtigungssystem in Ubuntu 9.04 mir anzeigt das ich neue Mails habe
Aber trotzdem bin ich beeindruckt, vorallem die Gmail-Kontakte im Mail Client zu sehen ist ein großer Schritt vorwärts.