Fallstricke mit der Typsicherheit: neues globales Attribut typeto
Verfasst: So 13. Nov 2022, 19:00
Wie in meinem Vortrag auf der Konferenz dargelegt, liefert ein
<we:field type="text" name="we_id" to="global" nameto="dieID"/>
immer einen String
gleiches gilt in PHP: $GLOBALS[‘dieID‘] = $dieID = we_tag(‘field‘,[‘type‘=>‘text‘, ‘name‘=>‘we_id‘]);
wenn ich dann folgendes mache zur initialisierung
$myDoc->initByID($GLOBALS[‘dieID‘])-> Error, erwartet einen Integer
man muss immer intval() nutzen oder nach int casten damit es funktioniert.
Es gibt ja mittlerweile auch <we:field type="int" name="we_id" to="global" nameto="dieID"/>
Aber auch das liefert eine Globals vom Typ "string"
Es wäre besser, man könnte den Ausgabe-Typ direkt beinflussen
Ich würde daher ein generelles (analog zu to und nameto) neues Attribut vorschlagen "typeto" mit string, array, bool, int,....
Analog bei we:setvar:
hier gibt es das Attribut varType, aber das beeinflusst nur die Filterung (aus REQUST,POST,GET) nicht den Ausgabe-Typ.
Das wird ja auch zum füllen / modifizieren von Properties von Dokumenten (usw.) vorgeschlagen.
Da es dort das Attribut "typefrom" schon gibt (mit anderem Zweck), wäre hier ein Attribut "fromtype" hilfreich
Hier wäre der default-Wert "string" da man in WE-Tags (ohne PHP) nichts anderes als Strings übergeben kann,
Aber in PHP kann man dann auch gleich z.B. ein Array übergeben, oder einen bool, oder (später mal ein DatetTime-Object)
Ich stelle das mal hier zur Diskussion und hoffe auf positives Feedback oder Vorschläge
wie man das eleganter lösen kann.
<we:field type="text" name="we_id" to="global" nameto="dieID"/>
immer einen String
gleiches gilt in PHP: $GLOBALS[‘dieID‘] = $dieID = we_tag(‘field‘,[‘type‘=>‘text‘, ‘name‘=>‘we_id‘]);
wenn ich dann folgendes mache zur initialisierung
$myDoc->initByID($GLOBALS[‘dieID‘])-> Error, erwartet einen Integer
man muss immer intval() nutzen oder nach int casten damit es funktioniert.
Es gibt ja mittlerweile auch <we:field type="int" name="we_id" to="global" nameto="dieID"/>
Aber auch das liefert eine Globals vom Typ "string"
Es wäre besser, man könnte den Ausgabe-Typ direkt beinflussen
Ich würde daher ein generelles (analog zu to und nameto) neues Attribut vorschlagen "typeto" mit string, array, bool, int,....
Analog bei we:setvar:
hier gibt es das Attribut varType, aber das beeinflusst nur die Filterung (aus REQUST,POST,GET) nicht den Ausgabe-Typ.
Das wird ja auch zum füllen / modifizieren von Properties von Dokumenten (usw.) vorgeschlagen.
Da es dort das Attribut "typefrom" schon gibt (mit anderem Zweck), wäre hier ein Attribut "fromtype" hilfreich
Hier wäre der default-Wert "string" da man in WE-Tags (ohne PHP) nichts anderes als Strings übergeben kann,
Aber in PHP kann man dann auch gleich z.B. ein Array übergeben, oder einen bool, oder (später mal ein DatetTime-Object)
Ich stelle das mal hier zur Diskussion und hoffe auf positives Feedback oder Vorschläge
wie man das eleganter lösen kann.