PHP-Objekt oder ein Array

8

Ich schreibe eine App, mit der Benutzer einige ihrer Websiteeinstellungen ändern und ändern können. Ich konstruiere nur einen Formulargenerator, der verschiedene Optionen an verschiedene Plugins senden wird, um den Code zu generieren. Ich frage mich, ob ich Objekte dafür anstelle von mehrdimensionalen Arrays verwenden soll. Wenn ja, wie würde ich meinen Code ändern?

Also jetzt habe ich das gemacht - es ist sehr lang und wird länger werden, also habe ich nur einen Teil davon aus Gründen der Kürze eingefügt: -

%Vor%

Was wäre die beste Praxis für so etwas?

    
David O'Sullivan 27.04.2012, 14:08
quelle

7 Antworten

4

Vielleicht ist das eine Dummheit, aber Sie können "YAML" oder "JSON" als Konfigurationsformat für eine Anwendung verwenden, nein?

Zum Beispiel Symfony oder ein anderes Framework.

    
ke20 27.04.2012 14:17
quelle
1

Mein Tipp: YAML oder XML oder JSON um eine besser lesbare Konfigurationsdatei zu erhalten, dann parse sie zurück zu einem Array in Ihrem eigenen Code.

    
adrien 27.04.2012 14:20
quelle
1

Ich würde die Einstellungen in <insert your markup language of choice> (XML, JSON, YAML, etc.) speichern.

Sie können diese dann in einer $_SESSION -Variablen zwischenspeichern und beim Bootstrapping auffüllen, wenn sie nicht bereits existieren:

%Vor%

Ob Sie ein Array oder Objekt verwenden oder nicht, hängt nur davon ab, welche Zugriffssyntax Sie bevorzugen:

%Vor%     
FtDRbwLXw6 27.04.2012 14:24
quelle
0

Ich würde sagen, dass manche wie Array Oriented Programmation sind und dass sie sich mit PHP 5.4 hervorragend ausdrücken können. Es sind jedoch mehr Leute an OOP gewöhnt - das kann ich auch - und es kann ein besser lesbarer Weg sein, Ihre Lösung zu programmieren.

    
artragis 27.04.2012 14:13
quelle
0

Ich denke, in dieser Route würde ich mit einer strukturierten objektorientierten Route gehen. Sie können ein übergeordnetes Objekt haben, das alle untergeordneten Objekte (Einstellungsgruppen) enthält, und Sie können sogar auf der Einstellungsgruppe als eigenes Objekt abrufen. Jedes Objekt hat seine eigenen Definitionen und Eigenschaften, die im Code dokumentiert werden können, der nützliche Informationen innerhalb einer IDE liefert (wenn Sie Docblocks verwenden).

    
Christopher Mancini 27.04.2012 14:21
quelle
0

Ich würde Objekte verwenden. Angenommen, Sie erstellen ein Formular, sollten Sie mehrere Klassen haben:

  • Form - um das Formular zu behalten, wird eine Eigenschaft $input_list (oder $node_list haben alle Eingaben
  • )
  • Input - um ein einzelnes Eingabeelement zu beschreiben, sollte es Eigenschaften wie label , type , tip etc.
  • haben
  • Fieldset - um ein Fieldset zu beschreiben, um weitere Elemente darin zu speichern. Wie die Klasse Form hätte sie $input_list , um alle Eingaben in ihr zu speichern.

Diese Klassen können für sich allein stehen und können so erweitert werden, dass sie benutzerdefinierte gemeinsame Eingabe-Typen haben (zum Beispiel)

%Vor%     
Madara Uchiha 27.04.2012 14:25
quelle
0

Wie andere Leute hier ist auch meine Meinung, dass ich YAML oder JSON verwenden möchte - damit könnte man es sehr einfach machen.

Zum Beispiel ein Beispiel für das JSON-Format Ihrer Datenstruktur:

%Vor%

Sie können PHP-Funktionen wie json_encode und json_decode für JSON & lt; - & gt; PHP Datentransformation. Die Verwendung geschweifter Klammern bedeutet, dass die Elemente Objekte sind. Wenn sie durch [und] ersetzt werden, erhalten Sie Arrays ...

Aber auch ein PHP-OOP-Ansatz könnte besonders bei der Erweiterbarkeit erfolgreich eingesetzt werden. Sie könnten eine Hauptklasse-Einstellungen mit einigen Standardeigenschaften und z. magic __get und __set Funktionen und dann können Sie viele Subsettings-Unterklassen implementieren, die sich von dieser Haupt-Settings-Klasse erstrecken.

    
shadyyx 27.04.2012 14:52
quelle

Tags und Links