An sich erst für die Version 6 geplant aber vermutlich mit Version 5.3 beginnend erhält PHP Namespaces – zumindest wenn man diesem Blogeintrag folgt. Namespaces dienen dazu gleichnamige Identifier (Variablen, Methoden etc.) an bestimmte Namespaces zu binden und so die Probleme bei gleichnamigen Identifiern zu umgehen.
Mit der Einführung von Namespaces wird die Code-Organisation (bei großen Projekten) mit PHP vereinfacht. Auch umständliche Datei- oder Klassennamen wie
class Hauptkontext_Subkontext_Klassenname {
}
entfallen damit, da die Kontexte in Packages gepackt werden können und der Klassenname immer noch eindeutig ist.
Das JSON Format (Java-Script Object Notation), ein leichtgewichtiges Format um Daten von einem Server zu einem Client (i.e. Browser) zu übertragen, welches beispielsweise gerne in AJAX-Anwendungen verwendet wird, ist von Natur aus nicht sonderlich lesbar.
Um die Lesbarkeit von JSON zu erhöhen gibt es ein Eclipse-Plugin (in einer sehr frühen Version), welches zum einen JSON in einer Baumstruktur darstellen kann. JSON kann auch als XML dargestellt und exportiert werden. Im weiteren ist es möglich die Validität von JSON Objekten zu überprüfen.
Das Plug-in steht bei Sourceforge zum Download bereit.
Der Flashplayer unterstützt leider (noch) keine hardwarebeschleunigte 3D Darstellung. Nichts desto trotz sind für Flex und ActionScript3 3D Libraries vorhanden, die zumindest im Flashplayer 9 ordentlich performen.
Während sich Papervision3D langsam zum Standard für 3D durchsetzt, gibt es noch das in einem recht frühen Stadium befindlichen Sandy.
Für uns Anwendungsentwickler wird 3D dann erst richtig interessant, wenn 3D nicht ars per artem existiert sondern wenn sich User Interfaces 3D Effekte zu Nutze machen. Beispiele hierfür finden sich für PaperVision3D hier und hier und ein schönes Beispiel, welches Sandy nutzt findet sich hier.
Über Sinn oder Unsinn von 3D-Elementen wird noch zu diskutieren sein. Jedoch spricht m. E. nichts dagegen, einige Elemente, bspw. mehrseitige Formulare oder ähnliches, statt in einem Tabulator oder einem Akkordeon in einen 3D Würfel darzustellen.
Update: Zu den Beispielen mit PaperVision3D sind noch die vier auf dieser Seite, auch von Stephen Downs, zu ergänzen.
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.
Die Truppe von JavaPosse hat bei Ihrem Gastspiel von der JavaZone 2007 in Oslo folgende Top Gründe für ein möglicherweise schief laufendes Projekt genannt:
- Es dauert drei Monate um eine Checkbox im Web UI hinzuzufügen
- Alles sieht so aus, als wäre es schneller es neu zu schreiben
- Jeder im Projekt hat “Architekt” auf seiner Visitenkarte, aber niemand stimmt irgendwas zu
- Gespräche fangen an mit: “…das, das ist wirklich einfach, Du musst lediglich…” und es folgt eine halbe Stunde Erklärungen
- Man richtet sein Leben nach dem “Build” aus
- Das GUI wird in AWT geschrieben …oder HTML 3.2
- Das Projekt ist ein hausgemachtes Webframework
- Irgendjemand hat fünf Stunden Meetings zu Deiner Arbeit addiert, weil die Projektzeit aus dem Rahmen läuft.
- Der Typ, der Dich trainieren sollte, wirft einen Ordner mit Notizen auf Dich und rennt schadenfroh kichernd weg
- Die Zeilen an XML übertreffen die Zeilen an Javacode um das zehnfache
- Du fragst nach Unittests und erntest nur leere Blicke oder ein “Ja, das sollten wir wirklich tun”
Heute ist nach langer Entwicklungszeit die Version 1.0 des PHP Developemt Tools (PDT) für Eclipse erschienen. Wer den Download von Eclipse mit allen Voraussetzungen für PDT scheut, findet für Windows, Linux und Mac OS X All-in-One Pakete auf den Downloadseiten. User, die bereits eine ältere Version nutzen können auch via Update-Manager auf die neuste Version upgraden. PDT 1.0 verlangt nach Eclipse 3.3 (Europa) und mindestens Java in Version 5.
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
Die iX macht in ihrer aktuellen Ausgabe auf ein Mashup aufmerksam, welches JavaFX Script verwendet, der Mitbewerber um Rich User Experiences von Sun, der gegen Adobes Flash und Microsoft Silverlight in Stellung gebracht werden soll. Unter www.musicpinboard.com steht die Anwendung zum Download und als Java Webstart zur Verfügung.
Die Entwicklergruppe soll acht Tage an der Anwendung entwickelt haben. Die über fünf MB große Anwendung kombiniert verschiedene Webservices aus dem Musikbereich mit einem Rich UI.
Für eine der ersten Demoanwendungen für JavaFx Script mag es beeidruckend sein, jedoch im Vergleich zu guten Flashseiten wirkt die Sache noch nicht rund. Die üblichen Probleme bei Java wie lange Initialisierungs- und Ladezeiten stehen dem ungetrübten Genuss der Anwendung entgegen. Auch die Dateigröße (auch wenn vieles Drittbibliotheken geschuldet ist) ist für eine solche Anwendung indiskutabel.
Die iX titelt den Artikel mit “Ein erster Schritt” und mehr kann dieses Mashup auch nicht sein.
Nachtrag zum Vortrag in Stuttgart: Einer der Diskussionspunkte war warum man denn eine neue Technologie / Sprachen (hier Flex) lernen und nutzen soll, wenn man das alles doch ehe mit Java erledigen könnte. Der Diskussionspunkt konnte nicht befriedigend gelöst werden, aber wenn man das Music Pinboard mit einer ausgewachsenen Flex-Anwendung vergleicht, sieht man in Sachen Dateigröße, Startup-Zeit, Flüssigkeit der Animationen, User Experience und der Codebasis recht schnell, dass es durchaus Sinn machen kann für bestimmte Aufgaben andere, spezialisierte Tools einzusetzen.