OO in PHP
Hallo,
ich beschäftige mich gerade mit PHP5 und OO-Pragrammierung und stoße da auf so einige Dinge, die mir nicht wirklich gefallen. Aber vielleicht habe ich da auch nur nicht alles richtig verstanden. Ich liste einfach mal die Punkte auf, die mir so aufgestoßen sind.
Ich habe leider keinerlei Möglichkeit gefunden, wie man seinen Quellcode logisch in Packages gruppieren kann. Ist dies nicht möglich, oder habe ich die Möglichkeit nur noch nicht entdeckt?
Daran, dass mir die Möglichkeit der Überladung von Methoden über die __call-Funktion nicht sonderlich gefällt, kann man wohl leider nichts ändern. Ebenso wie, dass man nur einen Konstruktur pro Klasse haben kann. Oder hat da einer einen schönen Weg gefunden?
Schade finde ich auch, dass die Exception nicht so "streng" behandelt werden wie z.B. unter Java. Habe ich das richtig verstnden? Wenn ich eine Exception nicht mit einem entsprechenden catch-Block abfange, dann passiert halt einfach nichts? Das heißt, ich bin nicht gezwungen, Exceptions abzufangen?
Ich freue mich schon auf euere Meinungen und Kommentare
Antwort schreiben
Antwort 1 von son_quatsch vom 28.01.2020, 15:34 Options
Mit "Packaging" meinst du bestimmt Namespaces, ansonsten kenne ich dieses Begriff wirklich nur aus PL/SQL. Jedenfalls gibt es sowas aber (noch) nicht. Konsequent wäre es, pro PHP-Datei bei jeweiligen Definitionen immer den Dateinamen als Präfix zu verwenden, also z.B. für den zu definierenden Datentyp "Bar" in der Datei "foo.php" nimmst du dann stattdessen "fooBar".
Ferner habe ich damals bei PHP5 Inkonsistenzen bzgl. Klassen erfahren müssen. Ich glaube z.B., dass es Probleme mit "self" an einigen Stellen gab, sowie dem Elternelement oder dem Sender. Und aufgrund fehlender Typentrennung gab es erst Recht Probleme oder zumindest Falltüren bzgl. dynamischer Zuweisungen.
Was ich dir aber definitiv sagen kann: PHP ist keine Programmier-, sondern eine Skriptsprache. Eine OO-Unterstützung wird dort nie vollständig zu finden sein. Das ist ein Riesenunterschied zu Java.