December 2007

Testen und Programmieren in PHP 5

PHP 5 hat sich bei der Objektorientierung einiges bei Java abgeschaut. Das führt dazu, dass man in PHP 5 sowohl im Stil einer reinen Skriptsprache programmieren kann, alsauch objektorientiert. Im Gegensatz zu Python unterstützt PHP 5 auch Sichtbarkeiten. Dazu kommt noch eine sehr gute Eclipse-Integration und ein Unit-Testing-Framework... und das ganze läuft dann auch noch plattformunabhängig.

Was braucht man alles für OOP in PHP ? Nun, im wesentlichen reicht das hier aus:

Daraufhin kann man seinen Applikationscode programmieren und sich dabei der Code-Navigationsmöglichkeiten und der Projekt- und Dateienverwaltung von Eclipse bedienen. Nur im Punkt Refactoring ist die Unterstütztung noch schwach. Bei einem lokalen Webserver lassen sich Skripte aus Eclipse heraus im Webbrowser anzeigen lassen.

Wichtig sind hierbei die javadoc-mäßigen Annotationen, in denen auch Typinformationen enthalten sein sollten. Auf diese Weise ist Eclipse in der Lage auch immer passende Hilfen zur Autovervollständigung anzuzeigen.

Zum Testen werden einfach entsprechende Klassen von UnitTestCase abgeleitet. Und man kann dann innerhalb der Eclipse Test Results das Ergebnis sehen - genau wie bei JUnit. Ein TestCase kann dabei folgendermaßen aussehen:

require_once 'MyClass.php';
 
class MyTest extends UnitTestCase {
    /**  
     * Unit under test
     *
     * @var MyClass
     */
    private $data;
 
    /**  
     * setup test case
     */
    public function setUp() {
        $this->data = new MyClass();
    }
 
    /**  
     * tests adding two numbers.
     */
    public function testAdd(){
        $this->data->add(1);
        $this->data->add(2);
        $this->assertEqual(3, $this->data->total());
    }
}

(originally posted on 2007-12-28)