Ich habe einen konfigurierbaren Bericht. Für jedes Feld, das in den Bericht aufgenommen werden kann, gibt es einen Schlüssel (in den Berichteinstellungen gespeichert), eine Beschriftung, möglicherweise eine Zugriffsebene und einen SQL-Deskriptor - etwa foo as my_foo
.PHP-Lösung zum Erstellen einer Liste von statischen Wertobjekten
In einer Java-App würde ich eine Klasse namens ReportField mit jeder der oben aufgeführten Eigenschaften erstellen. Ich würde einen privaten Konstruktor verwenden, und die Liste jedes der Felder in der Klasse wie folgt:
public final static ReportField FOO = new ReportField('foo', 'Foo', 1, 'foo as my_foo');
ich wahrscheinlich eine statische Anordnung von allen Feldern schaffen würde, eine statische Methode hinzufügen, die ein Feld erlaubt mit Schlüssel gesucht werden, und so weiter. Dann könnte ich an anderer Stelle Code wie schreiben:
Entschuldigung für den Java-Code, aber hoffentlich bekommen Sie meinen Punkt.
Gibt es einen idiomatischen Weg, um das gleiche Problem in PHP zu lösen? Ich kann mir eine Reihe von Lösungen vorstellen - verschachtelte assoziative Arrays werden den Zweck erfüllen - aber ich möchte eine hackische Lösung vermeiden.
aussehen würde die früheren Antworten Nach der Lektüre, das ist der Ansatz, der mir schien logisch. Eine statische Methode für den Zugriff, die die Sammlung träge initialisiert, scheint der logischste Ansatz zu sein. Warum ich diesen Ansatz wählen würde, ist es eine schöne Möglichkeit, eine Reihe von Optionen mit mehreren Eigenschaften zu erstellen, die außer vom Programmierer unveränderlich sind.Normalerweise würden Sie nur eine Datenbanktabelle für diese Art von Dingen verwenden, aber aufgrund der Art und Weise, in der es in die App eingebunden ist, ist es sinnvoller, einen Teil des Codes als einen Teil der Daten zu machen. (Obwohl es Daten sind.) – Rafe