Archive for the ‘PHP’ Category

Neue Version des Zend Framework veröffentlicht

Thursday, September 27th, 2007

Am gestrigen Mittwoch hat Zend, die Version 1.0.2 des Zend Framework veröffentlicht. Diese Version beinhaltet nur kleinere Erweiterungen wie den Google Base Support, aber auch 93 bekannte Probleme. Eine Übersicht über alle behobenen Issues liefert der Issue-Tracker von Zend Framework.

Das Zend Framework ist ein selektiv einsetzbares Framework zur Entwicklung von Webanwendungen mit PHP und liefert Features wie MCV, Datenbankabstraktion u.v.a.m. Wir setzen das Framework in einer Reihe von Projekten mit Gewinn ein.

Das Zend Framework kann in der aktuellen Version hier herunter geladen werden.

PHPUnit Goodies, Teil II

Monday, September 17th, 2007

Habe ich vor kurzem die Möglichkeit mit PHPUnit auf Bildschirmausgaben zu testen vorgestellt, so will ich heute auf zwei weitere kleine nützliche Features hinweisen, die beim reinen Überfliegen der Doku übersehen werden können.

Hat man den Test einer Methode noch nicht fertig gestellt, kann man die Methode mit

$this->markTestIncomplete('This test has not been implemented yet.');

als incomplete markieren. In der Bildschirmausgabe wird die Methode dann mit einem “I” dargestellt und der Unittest ignoriert diese Methode.

Eine weitere Möglichkeit ist es, Tests zu skippen. Mittels

$this->markTestSkipped('Test swapped because of ...');

wird der Test übersprungen und in Runner wird der test als S dargestellt.

Letztere bietet sich bspw. an wenn die erfolgreiche Durchführung von Tests an Bedingungen geknüpft ist.

if(!file_exists('log.txt')) {
  $this->markTestSkipped("Logfile not found");
}
//Test wird normal durchgeführt

PHP Unittests auf Bildschirmausgaben

Tuesday, September 11th, 2007

Eine (auch von mir) fast übersehene, manchmal sinnvolle Funktion von PHPUnit ist das automatisierte Testen von Bildschirmausgaben.

Manchmal geben Methoden keine Werte zurück vielmehr wird per echo oder print etwas auf den Bildschirm geschrieben, was sich mit den standardmäßigen Assert-Methoden natürlich nicht Testen lässt.

PHPUnit sieht dafür aber eine Testmethode vor. Statt wie oftmals die Testklasse von PHPUnit_Framework_TestCase zu extenden greift man auf PHPUnit_Extensions_OutputTestCase als Parent-Klasse zurück.

Mit

$this->expectOutputString("Erwartete Ausgabe");

wird die erwartete Ausgabe gesetzt.

Mit dem darauffolgenden Aufruf der zu testenden Methode, die etwas via echo oder print ausgibt wird dann automatisch verglichen.

Stimmen beide Zeichenfolgen überein, stimmt also die Bildschirmausgabe mit dem zu prüfenden String überein, glückt der Unittest.
Der Abschnitt aus der Originaldokumentation findet sich hier.

Eclipse PDT Milestone 3 veröffentlicht

Sunday, September 2nd, 2007

Auf den Seiten des PHP Development Tools Project der Eclipse Foundation steht der dritte Milestone des Projekts zum Download bereit.
Der Milestone behebt etliche Fehler und bringt auch eine Unterstützung für XDebug mit.
Die finale Version ist noch für diesen Monat geplant.

Mac und PHP

Sunday, August 19th, 2007

Am Wochenende ging es darum, dem MacBook eine AMP (Apache, MySQL, PHP) Umgebung für Entwicklungszwecke zu spendieren. Den Königsweg des Compilierens habe ich mir erstmal erspart. Das kenne ich zwar von Linux zur genüge jedoch will ich mich mit dem OS X zugrundeliegenden Unix erst noch intensiver beschäftigen. Blieben als Kandidaten MAMP, XAMPP für Apple und ZendCore/MySQL übrig. Ich habe alle drei installiert und getestet und will in diesem Beitrag ein wenig auf meine Eindrücke eingehen und letztlich auch beschreiben warum ich mich für welches Paket entchieden habe.

Mit MAMP 1.7 liegt ein recht aktuelles Gesamtpaket vor. Leider hat das Paket beim Ausführen von PEAR oder PHP auf der Kommandozeile einen nicht behebbaren Fehler so dass das Paket leider nicht in Frage kam. Positiv fiel auf, dass es letztlich nur in ein Verzeichnis unterhalb von /Applications entpackt wird und funktioniert. Weiterhin hat es einen schönen GUI Administrator dabei.

Zend Core 2 bedarf noch des Downloades von MySQL, um als AMP zu gelten. Mitgeliefert wird nur Apache und PHP, letzteres in der schon etwa älternen Version 5.2.1. PHP lässt sich bei Zend Core komfortabel über den Browser einrichten und administrieren. Installiert wird Zend Core wie auch MySQL unterhalb von /usr/local und nicht unterhalb /Applications wie die anderen beiden Pakete. Was für mich zum Ausschlusskriterium wurde ist die Tatsache, dass die wichtigen Updates (die per Kommando eingespielt werden könnten) nur gegen Abschluss eines kostenpflichten Supportpakets zu haben sind.

Mit XAMPP für Mac liegt die unter Windows wohl bekannteste AMP-Distribution für den Mac vor. Trotz der niedrigen Versionsnummer liegen die Einzelkomponente in den stabil neuesten Versionen vor. Auch hier langt wieder die Installation in ein Verzeichnis, gestartet werden die Komponenten über ein GUI-Tool.

Ich habe mir für XAMPP entschieden, weil dort aktuelle Versionen und eine fehlerfreie Umgebung zur Verfügung stehen. Auch ist sind die Apachefriends dafür bekannt, regelmäßige Updates zur Verfügung zu stellen. Ansonsten wäre Zend Core plus MySQL sicherlich auch eine Alternative wenn dort neue Version umsonst bereit stünden. MAMP scheint nicht so oft aktualisiert zu werden und der genannte Fehler waren für mich Kriterien dagegen.

Es geht hier wohlgemerkt nur um Entwicklungsmaschinen, auf Servern sind die genannten Pakete sicherlich nicht die erste Wahl, mit Ausnahme von Zend Core was von Zend entsprechend positioniert wird.