c0mecl4rity
Grünschnabel
Ist an und für sich ein interessanter Ansatz für das Problem. =)
Rein prinzipiell auch schön geschrieben.
Aber ich schließe mich mermshaus and und bin der Meinung,
dass diese Lösung ziemlich inkonsistent ist.
Anlässlich dieses Themas habe ich mal auf GitHub wieder eine Klasse hochgeladen,
die ich für eine Art Pseudo-Type-Hinting verwende/verwendete.
-> https://github.com/c0mecl4rity/PHP-Developments/blob/develop/Type-Hinting/Types.php
Das halte ich insofern für die bessere Lösung.
Auch wenn diese in einer gewissen Hinsicht auch unschön ist,
wenn man daran denkt, dass dieser Methodenaufruf in jede Funktion/Methode rein muss, in der man Überprüfen möchte.
Aber was will man machen? ^^ Hoffen, dass Hack sich durchsetzt und/oder,
dass es irgenwann mal optionale Type-Hints in PHP gibt.
Eine magische Methode like __toString wie "__toScalar", "__toWhatever" könnte das Problem schon lösen.
Dann könnte man entsprechende Klassen für seine Typen schreiben.
Und das ganze dürfte dann auch nicht mehr so den Augen
als auch der Programmeffizienz wehtun...
Rein prinzipiell auch schön geschrieben.
Aber ich schließe mich mermshaus and und bin der Meinung,
dass diese Lösung ziemlich inkonsistent ist.
Anlässlich dieses Themas habe ich mal auf GitHub wieder eine Klasse hochgeladen,
die ich für eine Art Pseudo-Type-Hinting verwende/verwendete.
-> https://github.com/c0mecl4rity/PHP-Developments/blob/develop/Type-Hinting/Types.php
PHP:
//Im Grunde läuft das Ganze noch nach diesem Prinzip ab:
if(!is_bool($var)) throw new \InvalidArgumentException...
if(!is_whatever($var))...
//Nur, dass die Schreibweise verkürzt wurde:
//In diesem Beispiel: boolean, null || integer, string, object || callable, [überspringen], resource
Types::are('b/-i/s/oc/-/r', func_get_args());
Das halte ich insofern für die bessere Lösung.
Auch wenn diese in einer gewissen Hinsicht auch unschön ist,
wenn man daran denkt, dass dieser Methodenaufruf in jede Funktion/Methode rein muss, in der man Überprüfen möchte.
Aber was will man machen? ^^ Hoffen, dass Hack sich durchsetzt und/oder,
dass es irgenwann mal optionale Type-Hints in PHP gibt.
Eine magische Methode like __toString wie "__toScalar", "__toWhatever" könnte das Problem schon lösen.
Dann könnte man entsprechende Klassen für seine Typen schreiben.
Und das ganze dürfte dann auch nicht mehr so den Augen
als auch der Programmeffizienz wehtun...
Zuletzt bearbeitet: