Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Veränderbare Konfigurationsdatei

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Veränderbare Konfigurationsdatei

    Hallo php.de-Community,

    ich habe ein Webprojekt für das ich ein Admin-Center schreiben möchte,
    in dem ich alle Einstellungen (Counterzahl, Countdown-datum etc.) zentral speichere. Das an sich ist kein Problem.

    Nun will ich aber, dass ich auch von dem Admin-Center aus die Einträge ändern kann. Kann mir jemand sagen wie ich das realisiere?

    Ich hoffe es ist klar was ich meine, falls nicht versuch ich es nochmal zu erklären.

    Danke im Voraus!

    mfg Ind3X

  • #2
    Zitat von Ind3X Beitrag anzeigen
    Nun will ich aber, dass ich auch von dem Admin-Center aus die Einträge ändern kann. Kann mir jemand sagen wie ich das realisiere?
    Also ich würde die in ein Form laden und da kann man es dann ändern - oder auch nicht und wieder Speichern - oder auch nicht ...

    Was ist genau dein Problem dabei und dein Ansatz zur Lösung?

    Kommentar


    • #3
      Inserate, Konzepte und Meinungsumfragen

      Kommentar


      • #4
        Ich wollte es eigentlich per .php File machen die ich dann jedes mal parse und bei Bedarf neu schreibe, aber das wird mir von der Performance her zu langsam.

        Werd wohl auf xml zurückgreifen und die config-Datei per .htaccess schützen.

        Danke nikosch, interessanter Artikel.

        Kommentar


        • #5
          Was wird häufiger geschehen? Dass du die Konfigurationsdatei einliest im Rahmen der normalen Webseite oder im Rahmen des Admin-Bereichs? Ich nehme stark an, ersteres. Wo also sollte die bessere Performance liegen? Richtig: Bei ersterem. Eine PHP-Datei ist immer mit die schnellste Variante verglichen mit XML und so Zeugs.
          Wieso müsstest du eine PHP-Datei Extra parsen? Eine PHP-Datei includen, wo die Konfiguration im Array liegt, dann, ja, liegt die Konfiguration im Array. Da ist nichts mit Parsen. Das Parsen macht das PHP bereits für dich.

          Kommentar


          • #6
            Was spricht eigentlich gegen eine eigene .ini Datei in einem geschützten Verzeichnis für Konfigurationsdaten, die nur eventuell irgendwann mal geändert werden ?
            Das parsen einer kleinen Datei mit parse_ini_file lag im Test unter 1 ms, dazu pflegeleicht und ein bequemer Zugriff.

            Edit: Wenn mit Datenbanken gearbeitet wird, dort eine config table anlegen.

            Kommentar


            • #7
              Zitat von jspit Beitrag anzeigen
              Edit: Wenn mit Datenbanken gearbeitet wird, dort eine config table anlegen.
              Und dann ein Config-File mit den Verbindungsdaten zur MySQL-Datenbank ?

              Kommentar


              • #8
                Nein, die Verbindungsdaten auch in die config table

                Kommentar


                • #9
                  Zitat von mepeisen Beitrag anzeigen
                  Wieso müsstest du eine PHP-Datei Extra parsen?
                  Es geht nur um den Vorgang beim ändern / beschreiben der Datei:

                  Wenn ich sie beschreiben will müsste ich erstmal die gesamte Datei auslesen,
                  dann ermitteln welcher Eintrag geändert werden soll, diesen Part
                  entsprechend anpassen, und alles wieder in die Datei schreiben.

                  Kann mir kaum vorstellen dass das schneller geht als die Variablen einfach
                  per XML auszulesen / zu schreiben, oder irre ich mich da?

                  Gruß Ind3X

                  PS: XML funktioniert bestens, habs heut morgen noch teilweise implementiert.

                  Kommentar


                  • #10
                    PHP-Code:
                    function writeConfig( array $inbound$filename ) {
                       
                    file_put_contents($filename'<'.'?php '"\n".'return '.json_encode($inbound));
                    // das < und ?php wird hier konkatiniert, weils sonst das highlighting zerstört !

                    function getConfig($filename) {
                       
                    $data = include($filename);
                       return 
                    json_decode($data);

                    usage:

                    read
                    PHP-Code:
                    $config getConfig('config.php');

                    list ( 
                    $host$user$pass$dbname ) = $config['database'];
                    $db = new mysqli($host$user$pass$dbname);

                    /* ... */ 
                    write
                    PHP-Code:
                    $config = array(
                       
                    'database' => array('localhost''heinz''seinpw''db')
                    );

                    writeConfig$config'config.php' ); 

                    Kommentar


                    • #11
                      Blöde Frage (Glaubensfrage?) Wovon macht man es abhängig, ob man die Config-Werte nun als XML, JSON oder INI speichert?

                      (Gemein haben alle 3 das man Sie direkt von unerlaubten direkten Download schützen muss (htaccess oder Verzeichnis ausserhalb wwwroot) weil - im Gegensatz zum .php ja nix interpretiert wird und man somit den Text direkt bekommen würde.)

                      Sonst nimmt man einfach die wo man von tr0y die Zugriffsunktionen gliech dazu geleifert bekommt

                      Kommentar


                      • #12
                        XML = Größerer Wartungsaufwand, selbst-regulierender Standard, DTDs & Co, Idiotensicherer für Enduser, Maskierbar, Auto-Shrink möglich für sehr schnelles laden von großen Dateien

                        INI = Steinzeit-DOS Format, solide jedoch maximal 2 Dimensional gliederbar.

                        JSON = Werkzeug zur Schnellen abhandlung, sehr fraktale Version einer Konfigurationsdatei, Konfiguration obliegt immer einem "Assistenten".

                        Kommentar


                        • #13
                          Zitat von Ind3X Beitrag anzeigen
                          Es geht nur um den Vorgang beim ändern / beschreiben der Datei:

                          Wenn ich sie beschreiben will müsste ich erstmal die gesamte Datei auslesen,
                          dann ermitteln welcher Eintrag geändert werden soll, diesen Part
                          entsprechend anpassen, und alles wieder in die Datei schreiben.

                          Kann mir kaum vorstellen dass das schneller geht als die Variablen einfach
                          per XML auszulesen / zu schreiben, oder irre ich mich da?

                          Gruß Ind3X

                          PS: XML funktioniert bestens, habs heut morgen noch teilweise implementiert.
                          Das ist leider Unfug.

                          Einlesen: [man]include[/man]
                          Schreiben: [man]file_push_contents[/man] und [man]var_export[/man]

                          Beispielhaft eine Config:
                          PHP-Code:
                          function getConfig() {
                          return array(
                          'meinKey' => 'meinWert');

                          Beispielhaft Wert verändern:
                          PHP-Code:
                          include 'config.php';
                          $configNeu getConfig();
                          $configNeu['meinKey'] = 'meinWert';
                          file_put_contents('config.php'"<"."?php function getConfig() { return " var_export($configNeu) . "; }"
                          So ungefähr. Also das halte ich für extrem überschaubar.

                          Und bitte die Geschwindigkeit nicht von Anzahl der Funktionsaufrufe abhängig machen. XML parsen, ändern und schreiben ist in diesen Fällen die langsamste Variante.

                          Kommentar


                          • #14
                            o0 äh ja.. Glubsch mal in meinen Vorvorpost mepeisen. Was fällt dir auf ?

                            Kommentar


                            • #15
                              Ei, dann glubsch mal in meinen Post, der ist nix json
                              Was nun schneller ist ob json oder normal php, k.A. AAABER: Gerade bei 5MB Konfigurations-Datei (kann schnell passieren wenn man beispielsweise Sprachinhalte darüber auch abhandelt) hat meine Variante Potential von den diversen Caching-Extensions

                              Kommentar

                              Lädt...
                              X