[Struts4php-user] Re: neues struts4php
Brought to you by:
brainguide
|
From: Tim W. <t.w...@te...> - 2005-03-02 09:15:19
|
Ralph Bergmann wrote:
> Guten Morgen!
>
>
> Ich hab mit großer Freude schon vor ein paar Tagen die neue Version
> runtergeladen und nun auch eingespielt.
>
> Die Funktion, dass die Action's / ActionForm's bei Bedarf automatisch
> hinzugeladen werden, gefällt mir gut. Doch hab ich da auch eine kleine
> Änderung.
>
> Ich versuche immer Pakete von anderen Entwicklern möglichst im
> Originalzustand zu lassen, damit diejenigen, die meine Anwendung
> nutzen, keine Probleme bekommen, wenn sie mal neuere Versionen
> einspielen.
>
> Nun ist die neue "autoIncludeFunction" so, dass sie die Dateien im
> Verzeichnis action sucht (oder hab ich schon wieder was falsch
> gemacht?), doch da möchte ich sie nicht haben. Aus diesem Grund habe
> ich der Klasse ActionBanana die zusätzliche Eigenschaft $includePath
> gegeben, die ich duch eine globale Konfigurationsdatei befülle. Die
> "autoIncludeFunction" nutzt nun diese mit und so kann ich meine
> eigenen Action's / ActionForm's speichern wo ich will.
> Und warum schreib ich das hier eigentlich?!? Ich dachte, es wäre 'ne
> prima Idee, die sich auch andere wünschen ;)
>
>
> Was ich leider noch nicht ganz verstanden habe, wozu ist die
> resources.php?!? Soll es für eine Internationalisierung sein?
>
>
> Mit freundlichen Grüßen!
>
> Ralph Bergmann
>
> p.s. um die doch recht vielen struts4php Dateien nicht alle "von Hand"
> includen* zu müssen, hab ich mir dies hier ausgedacht:
>
> function map_dirs($path) {
> $ret = "";
> if(is_dir($path)) {
> if($contents = opendir($path)) {
> while(($node = readdir($contents)) !== false) {
> if($node != "." && $node != "..") {
> if(is_dir($path."/".$node)) {
> $ret = $ret . map_dirs("$path/$node");
> } else {
> $ret = $ret ."require_once('". $path ."/". $node ."');";
> }
> }
> }
> }
> }
>
> return $ret;
> }
>
> eval(map_dirs("../../module/struts4php"));
>
> * ich mag kein denglisch :(
Hallo Herr Bergmann,
freut mich, dass Ihnen die neue Version gefällt :-)
Das mit dem Include path sollte eigentlich schon funktionieren, d. h.
sie können in der struts-config.xml im action tag über den include
Parameter den kompletten Pfad zur jeweiligen Action angeben. Warum er
bei Ihnen immer im actions Verzeichnis sucht versteh ich auch nicht. Ich
gebe z. B. include="actions/admin/personcreateaction.php" an, wobei bei
unsereren Anwendungen der Pfad zum Controller immer im PHP Include Pfad
mit aufgenommen wird. Es sollte eigentlich somit ohne den neuen
Parameter der ActionBanana funktionieren. Es wäre natürlich nett, wenn
Sie das bei Ihnen nochmal überprüfen könnten, damit wir, falls das
Problem weiterhin besteht, dieses beseitigen können.
Die "resources.php" ist ein erster Versuch die Internationalisierung
einer Anwendung automatisch durch struts4php zu unterstützen. Hierbei
können Sie über das Tag <message-resources> in der Konfigurationsdatei
ein Resourcebundle angeben, z. B. <message-resources name="testresource"
path="conf"/> würde bewirken, dass der Controller die Datei
"testresource.de_DE.properties" im Verzeichnis "conf" Ihrer Webanwendung
einliest und Ihnen den Inhalt über die Methode "getResources()" der
ActionBanana zur Laufzeit zur Verfügung stellt. Die Resourcedateien
müssen den Aufbau "key = value" haben, wie die Resourcedateien aus Java.
Über den Parameter "locale" der ActionBanana können sie festlegen welche
Datei geparst werden soll. Wenn Sie also als Parameter "en_EN" angeben,
dann würden Sie den Inhalt der Datei "testresource.en_EN.properties"
erhalten. Über die Methode "find($key)" der Resourceklasse erhalten Sie
dann den zugehörigen Wert. Das ganze ist allerdings nur ein Anfang und
natürlich noch stark ausbaufähig.
Das Problem mit den Include der vielen Dateien ist uns natürlich auch
schon aufgefallen. Wir verwenden deshalb immer das PEAR Package unter
http://www.struts4php.org/pear/struts4php-current.tgz, das alle Dateien
in Ihrem PEAR Verzeichnis automatisch anlegt, Sie müssen in Ihrer
Anwendung dann lediglich include_once "struts4php.php" angeben um alle
Dateien zu includieren. Weiterhin arbeiten wir gerade an Version 2.0 des
Frameworks, das komplett bezüglich der neuen Features von PHP5
überarbeitet wird. In diesem Zuge werden wir das Include Problem auch
nochmal angehen.
Ich hoffe ich konnte Ihnen soweit helfen. Vielleicht haben Sie ja Lust
an der Entwicklung von struts4php mitzuwirken. Wir würden uns immer über
neue Entwickler freuen.
mfg
Tim Wagner
|