Chrisi: Variable verknüpfen bevor gesetzt ?

Hallo zusammen,

ich arbeite an einem Projekt wo in der Konfigurationsdatei die Metadaten für die einzelnen Module festgelegt werden. Nun ist es so das die Konfiguration natürlich vor den einzelnen Modulen geladen wird, ich aber bei manchen Metadaten Informationen an die Konfigurationsdei geben muss um die Metadaten zu vervollständigen. In Form von Platzhalten oder ähnlich.

Ich habe versucht in der Konfigurationsdatei als Platzhalter eine Referenz zu legen und darauf gehofft das diese dann die Inhalte der Variable die erst später gesetzt wird aufnimmt, hat aber nicht geklappt.

Gibt es da vielleicht eien sinnvolle Lösung wie ich sowas erstellen kann ?

Viele Grüße

Chrisi

  1. Hi,

    ich verstehe das Problem nicht ganz. Wenn Du mehrere Teil-"Hashes" (assoziative Arrays) nutzt und diese sukzessive zu einer Gesamt-Konfig zusammenfügst, kannst Du die Werte anhand einfacher Schlüssel-Prüfungen bestimmen.

    Ob ein Konfig-Eintrag (schon) gesetzt ist oder nicht, kann dann einfach am fehlenden Schlüssel oder einem undefinierten, bzw. False-Wert erkannt werden...

    Gruß

    • Danny
    1. Hi Danny,

      das ganze ist ziehmlich einfach aufgebaut, ich möchte nur ungern eingreifen und veränderungen an der logik vornehmen.

      config:

      $cfg['modul'] = array('title' = 'tolle seite &$moreinfo');

      modul will jetzt den title setzen, muss aber dazu in der variable $cfg['modul'] die fehlenden infos $morefinfo ergänzen. das zusammensetzen von array teilstücken würde dazu führen das ich die einzelnen module anpassen muss, was ich aber vermeiden möchte.

      ich versteh auch nicht warum die referenz in meinem obigen beispiel nicht ausreicht, dass wäre für mich die optimale lösung.

      viele grüße

      chrisi

      1. Hi Chrisi,

        $cfg['modul'] = array('title' = 'tolle seite &$moreinfo');

        function config_array(&$cfg, $modul, $value)
        {
          $cfg[$modul] = $value;

        return true; ## oder was Du als Kontrollwert sonst zurückgeben willst
        }

        Nun würde $value während der Laufzeit eingesetzt.

        Aufruf:

        $cfg_ok = config_array($cfg, 'modul', $moreinfo);

        Außerdem könntest Du den String in $value von der Funktion auch noch parsen lassen mittels eval()

        LG
        Chris