dedlfix: Konfigurationsdaten Projekt

Beitrag lesen

Tach!

Wieviel Tonnen davon willst du denn erzeugen, dass das eine Auswirkung hat? Zusatzfrage: Um wieviel Byte/Prozent reden wir eigentlich?
Gegenfrage: Ab wann ist wenig nicht mehr wenig? Afaik(!) wird bei jedem Aufruf einer globalen Variable intern eine Kopie erstellt. Verwende ich ein Objekt, benutze ich intern Pointer.

Es ging um Konstanten, nicht um Variablen.

Vielleicht weiß da jemand genaueres dazu, das ist zumindest was ich irgendwoher im Hinterkopf habe. Wobei ich da auch gerade selbst zweifle weil ich keine Quelle zu so einer Aussage finden kann. Vielleicht bin ich da tatsächlich einfach auf dem falschen Weg.

Selbst bei Variablen fällt bei einer Übergabe als Kopie nicht mehr Aufwand an, als bei einer Übergabe per Referenz. Eine Variable wird erst dann richtig kopiert, wenn sich ihr Inhalt von dem ihrer Quelle zu unterscheiden beginnt. Solange sieht sie intern fast wie eine Referenz aus. Copy-On-Write nennt sich das. Siehe jenes PDF-Dokument: References in PHP (ist schon etwas älter, aber vermutlich immer noch gültig).

Prinzipiell sicher nichts, aber du gedenkst drauf von anderenorts zuzugreifen, statt die Werte daraus zu übergeben. Das wäre Global State, den es nach den Clean-Code-Richtlinien zu vermeiden gilt. - Das ist kein Gesetz, nur eine Richtlinie, an die man sich halten kann, wenn sie einen überzeugt, oder auch nicht.
Das kannst du auch umgehen indem du dem Ganzen eine statische getter-Funktion verpasst.

Ich muss mich erstmal korrigieren. Es war nicht Global State sondern Don't look for Things.

Eine statische Getter-Funktion ist (nach Don't-look-for-Things-Gesichtspunkten) nicht besser als der Zugriff auf eine statische Klassen-Variable oder -Konstante oder auch Konstanten allgemein und globale Variablen. In allen Fällen greifst du auf etwas zu, das außerhalb der Klasse existieren muss, statt ihr etwas zu übergeben, was man im Test-Fall auch mal faken kann.

dedlfix.