dedlfix: Eindimensionales Array zu Mehrdimensionalem Objekt konvertieren

Beitrag lesen

Hi!

Oder ist das schon wieder der falsche Ansatz, wenn ich versuche zu abstrahieren, ich meine die Klasse ist ja verallgemeinert, man kann beliebige Unterseiten hinzufügen.
Und diese dann mittels der get-Methode aufrufen.

So sieht das zumindest vernünftiger aus. Daten werden als solche behandelt und sind nicht der Code selbst. Was war eigentlich der Grund, warum du den Objekt-Versuch gestartet hast? Brauchst du die einzelnen Bestandteile des Pfades für irgendetwas oder hast du die nur des Objekts wegen aufgeteilt?

Man müsste halt in der GET-Methode für jede existierende Webseite einen Fall via switch / case oder ifelse definieren, der die notwendigen Scripte zur Erstellung der übergebenen Webseite aufruft.

Das kommt drauf an, ob man nicht die Daten direkt weiterverarbeiten kann. Man kann beispielsweise zunächst alle erlaubten Webseiten in einem Array auflisten, dann den übergebenen Wert auf Vorhandensein in diesem Array prüfen und anschließend daraus direkt oder indirekt einen Dateinamen generieren.

Indirekt ginge das mit so einer Datenstruktur:

$array('webseite1' => 'template1.tmpl',
         'webseite2' => 'template2.tmpl');

Beim direkten Verwenden ist das Prüfen gegen das Array (oder eine vergleichbar sichere Maßnahme) wichtig, damit nicht irgendeine beliebige Datei aufgrufen werden kann.

Zu deiner Fragen:

Aber ich habe doch eine Variable:
$url = $_GET["side"];
$sides = explode("/",$url);

Warum legst du eine Kopie der URL in $url an, obwohl sie doch schon in $_GET["side"] enthalten ist?

$url ist kürzer. Und selbst als Programmierguru müsstest du doch trotzdem als Mensch zugeben das man sich kürzere Sachen besser merken kann als längere, oder?

Es ist zwar kürzer zu tippen, aber nun musst du dir zusätzlich merken, wo $url herkommt. Einem $_GET/$_POST sieht man das sofort an. Mitunter ist bei manchen das Umkopieren auch derart Gewohnheit geworden, dass sie gar nicht mehr merken, dass die neue Variable nur ein- oder zweimal verwendet wird und damit das Notieren des Codes für das Umkopieren aufwendiger als eine direkte Verwendung war.

Ich dachte mir das es den Quelltext leichter verständlich macht. Das war zumindest meine Intention :-)
Aber da du so fragst ist das mal wieder grundlegend falsch, was? :-(

Grundlegend falsch würde ich das nicht bezeichnen, nur komplexer wegen der zusätzlichen Variablen.

Da es sich wohl um ein Grundsatzproblem handelt werde ich wohl alles nochmal neu überdenken müssen.
Ich gehe mal davon aus das es unabhängig von dem Grad der Sinnvollkeit wohl so auch nicht möglich ist ein eindimensionales Array in ein mehrdimensionales Array zu konvertieren, zumal du ja sagtest das die Begrifflichkeiten hier fehl am Platze und auf Objekte garnicht anwendbar sind.

Du solltest dich dabei immer fragen, was der Nutzen der Handlung ist und was die möglichen Nachteile sind. Nicht immer wirst du das wissen und dann auch mal in die falsche Richtung rennen. Das ist zwar ärgerlich, gehört aber zum Lernprozess dazu.

Man kann den Begriff "mehrdimensionales Array" durchaus verwenden, dann aber bitte nicht für eine baumstrukturartige Datensammlung, sondern eher für mathematischen Dinge wie Matrizen oder das Spielfeld von 3D-4gewinnt und dergleichen, also Gebilde, die sich in jeder Richtung/Dimension gleichmäßig erstrecken.

Lo!