Denkanstoß: Codet-Teile dynamisch einbinden

supersalzi

Erfahrenes Mitglied
Denkanstoß: Code-Teile dynamisch einbinden

Hey,
Ich brauch mal einen Denkanstoß von euch zu einem eigentlich einfachen Problem...

Vorraussetzung:
Ich benuzte eine index.php Datei, in der verschiedenste Teile wie header, content, und footer zusammengefügt werden.

Aufgabe:
Ich möchte bestimmte Code-Schnippsel wie z.B. das laden von JavaScipt-Dateien in den HTML-Header dynamisch einbinden; sprich, es sollen nicht immer alle Module geladen werden.

Problem:
Wie kann ich effizient festlegen, bei welchem Inhalt welche Module eingefügt werden?

Ideen:
  1. Ich könnte für jedes Modul ein Array anlegen, in welchem alle Dateien in denen es gebaucht wird angegeben sind - erscheint mir umständlich.
  2. Ich könnte in einer Arraystruktur meine ganze website abbilden und für jede Datei festlegen welche Module eingebunden werden sollen - erscheint mir auch umständlich

Es wäre schön, wenn ich für eine einzelne Datei, sowie auch für ganze Ordner festlegen könnte, welche Module eingebunden werden können.

Hat da jemand eine Idee?
 
Zuletzt bearbeitet:
Was die Übersicht angeht, empfehle dir erstere Variante. Dazu kannst du eine Art Vererbung nutzen, bei der lokale Werte die globalen Initialwerte überschreiben oder erweitern.
 
ok, wenn du das sagst glaube ich mal das das der "best to do" Weg ist.

Leider kann ich mir für die Vererbung keinen konkreten Lösungsansatz denke. Wie stellt man so etwas an?
 
Wenn die Werte bereits in einem Array vorhanden sind, wäre Folgendes möglich:
PHP:
$globals = array(
	'foo' => '12345',
	'bar' => '12345',
	// …
);
$locals = array(
	'foo' => '67890',
	'baz' => '67890',
	// …
);
$merged = array_merge($globals, $locals);
 
sorry, da komme ich nicht ganz mit.

Ich habe prinzipiell 4 Ebenen von Ordnern / Dateien.

Wenn ich dich richtig verstanden habe müsste das dann in etwa so aussehen:

PHP:
$modul_1  = array(
	'level-1' => array('beruf'),
	'level-2' => array('haus/bilder', 'tiere/futter')
	'level-3' => array('tiere/pflege/salben'),
	'level-4' => array('freizeit/haushalt/kueche/kochen.php'),
	)

wenn ich bei folgender Ordnerstruktr das Modul 1 einbinden möchte.

Struktur:

+ beruf
+ haus
- + bilder
+ tiere
- + futter
- + pflege
- - + salben
+ freizeit
- + haushalt
- - + kueche
- - - -kochen.php

Und die Arrays level-1 bis level-4 müsste ich dann mittels array_merge() zusammenfügen.

(Es sei evt. nochmal erwähnt, dass ich keine Zahlen oder so verwende, sondern direkt die Ordner- und Dateinamen in der URL übergebe und diese nicht in Arrays irgendwo gespeichert sind: index.php?a=freizeit&b=haushalt&c=kueche&d=kochen )

Nee, ich glaube das haut so nicht hin, ich habs bestimmt nicht richtig verstanden...
 
Zurück