ExtJS, leere Form Panels und deren Values


Mittwoch 23.Dezember.2009, 16:04 von Mario

Im Moment baue ich an einer relativ komplexen Webapplikation deren Frontend auf dem Javascript-Framework ExtJS basiert. Im Zuge dessen bin ich auf ein Verhalten  des Frameworks gestoßen, was ich ungünstig finde:

Wenn ich auf einem Objekt des Types Ext.FormPanel die Methode getValues() aufrufe, bekomme ich nicht wie man vermuten könnte NULL oder zumindest eines der kranken Javascript Derivate davon, sondern ein Objekt welches eine Eigenschaft [Leerstring] mit dem Wert ‚undefined‘ hat. Ein Objekt welches man ‚zu Fuss‘ so konstruieren könnte:

1
var myObject = {'': 'undefined'}

was zumindest für mich hinreichend wahnsinnig aussieht. Da ich nun selbiges auf etwaigen Inhalt überprüfen muss, ist diese Objectstruktur denkbar ungünstig, da sie sich nicht mit Ext.isEmpty() oder anderen ‚einfachen‘ Vergleichen überprüfen lässt.

Ich hab das vorerst ganz pragmatisch gelöst:

1
2
3
4
5
6
7
8
9
var hasValues = false;
var valsObj = item.getForm().getValues();
 
for(var i in valsObj){
  if (i != '') {
    hasValues = true;
    break;
  }
}

Was zwar nur rumdoktern an den Symptomen ist, aber immerhin mein Problem löst. Vielleicht fühlt sich ja auch jemand berufen, sich meines Threads im ExtJS forum anzunehmen, das wäre mir natürlich am allerliebsten :-).

urlino.com – ein Beispiel für das Zend Framework


Montag 08.Juni.2009, 11:53 von Mario

Da ich in der letzten Zeit recht viel mit dem PHP Framework Zend Framework herumgespielt hab, will ich den geneigten Leser an meinen Erfahrungen teilhaben lassen, auch wenn im Zuge des allgemeinen (PHP-)Framework Hypes wahrscheinlich schon mehr unnützes als informatives dazu geschrieben wurde. Da jeder halbwegs erfahrene PHP Entwickler sich sicherlich schon mit dem einen oder anderen Framework beschäftigt hat, spar ich mir mal die einleitenden Worte wie: Was ist ein Framework, warum muss ich das haben und, und, und ….

Ohne das ich ein PHP Framework Guru bin, der sie alle schon gesehen hat: Was mir bei ersten Arbeiten mit ZF aufgefallen ist: Im Vergleich zu Symfony, einem anderen im Moment mächtig gehypten PHP Framework, ist der Einstieg in ZF wesentlich intuitiver, es gibt nur wenige Arbeitsschritte zu tun, um eine Minimalapplikation zum Laufen zu bringen, die dann wirklich auch minimal ist. Bei meinem ersten Gehversuchen mit Symfony hatte ich zumindest das Gefühl, das da doch ein Menge Code durch das symfony commandline tool generiert wird, den man im Prinzip anschließend komplett entsorgen kann. ZF geht da gefühlt wesentlich übersichtlicher zu Werke, was aber auch mit einer gewissen Lernkurve meinerseits im Umgang mit solchen Frameworks zu tun haben kann.

Da ein bischen Code mehr sagt wie 1000 Worte findet sich eine Beispielapplikation im  svn Repository unter http://svn2.xp-dev.com/svn/majo-urlino/trunk/. Bei der Appliktion handelt es sich um einen simplen kurzurl-Dienst ala tinyurl.com. Die Applikation in Aktion kann unter http://www.urlino.com begutachten. An sich ist die Applikation nicht weiter spannend, allerdings greift das Beispiel ein paar klassische Probleme wie Internationalisierung, Einbindung eines Javascript Frameworks(in diesem Falle Dojo) und den Aufbau einer Struktur für eigene Erweiterungen des Frameworks auf.

Um die Anwendung in der eigene Entwicklungsumgebung laufen zu lassen, sollte man sich eine frische MySql  Datenbank mit dem name zf und einen user zf mit dem passwort zf auf localhost einrichten(Konfiguration in ./application/configs/application_localhost.ini). Im Verzeichnis ./resources/sql befindet sich die Datei setup.sql mit dem nötigen sql für die Initialisierung der Datenbank. Zusätzlich hab ich auch meine Eclipse Project Datei eingecheckt, so das man sich die Applikation direkt mit Eclipse aus dem Repository auschecken kann.

Viel Spaß beim ausprobieren und ich freue mich auf Anmerkungen, Fragen und Verbesserungsvorschläge.

Scope von Javascript Variablen


Dienstag 19.Mai.2009, 20:41 von Mario

Nachdem ich mich heute im Dojo Support Forum doch relativ konsequent zum Obst gemacht hab, ist dieser Artikel ein kleiner Reminder to myself beim Schreiben von Javascript Code nie, aber auch wirklich nie wieder das kleine Wörtchen ‚var‘ vor der Variable zu vergessen. Ansonsten hat man ganz schnell mal ein unerwartetes Objekt am Wickel.  Sei es mir eine Lehre und ich verbitte mir spöttische Kommentare, ich leide auch so schon genug :-).