Einen interessanten Artikel hat Ralf auf IBM developerWorks gefunden. Der Artikel zu der Konfiguration unter PHP ist recht interessant, doch sind Ralf noch ein paar Sachen hierzu aufgefallen.
Ich habe den Artikel im developerWorks nur kurz überflogen, aber habe ich hierzu noch eine bessere Lösung. Dies werde ich euch in einem extra Artikel präsentieren.
Zu Ralfs fünf Punkten in seinem Artikel hätte ich ein paar Anmerkungen:
Zu Punkt 2
In dem verwendeten Datenbankschema gibt es einen Primärschlüssel ‘id’. Diesen würde ich weglassen und stattdessen die Spalte ‘name’ als Primärschlüssel definieren. Das macht das Arbeiten mit einer Settingstabelle in einer Datenbank noch einfacher.
Es könnte daran liegen, das der Entwickler mehrere Konfigurationen in der Datenbank, zu einem Konfigurations-Schlüssel haben möchte. Zum anderen lässt sich das später gut mit diversen anderen Tabellen verknüpfen. Ausserdem, falls man einen Index darauf setzen würde und damit arbeitet, wäre dieser schneller.
Zu Punkt 3
Bei der Option, die Konfiguration in der php.ini vorzuhalten, fehlt meiner Meinung nach der Hinweis, dass man auch lokale php.ini Dateien verwenden kann. Damit umgeht man das Problem, sitespezifische Konfigurationseinstellungen global verwalten zu müssen.
Das stimmt, wirklich eigene php.ini Dateien gehen aber nur mit PHP als CGI. Wenn PHP als Modul eingebunden ist, geht das nicht.
Zu Punkt 4
Zudem fehlt noch eine weitere Option. Und zwar kann man auch eine eigene .ini Datei verwenden, die nicht php.ini heißt, z.B. settings.ini, und kann diese in einem beliebigen Verzeichnis außerhalb des Document_Root ablegen, so dass niemand anderes darauf Zugriff hat. Über parse_ini_file() lässt sich diese leicht einlesen.
Es gibt auch eine andere Möglichkeit, da man nicht immer aus seinem htdocs bzw. Homeverzeichnis raus kann. So gibt es manche Hoster, die diese Möglichkeit nicht bieten. Aber ein kleiner Trick schafft Abhilfe:
Gebe einfach der Konfigurationsdatei die Dateiendung php. Dann schreibe in die erste Zeile:
Download Code!
;<?php
die('Böser Bube!'); ?>
Das Semikolon wird vom INI-Parser ignoriert, aber der PHP-Interpreter springt darauf an. Das bedeutet man könnte auch die Konfigurationsdatei innerhalb des Webverzeichnisses aufbewahren. Solange natürlich der Webserver auch PHP verarbeitet.
Habe heute morgen einen neuen interessanten Artikel in der Rubrik IBM developerWorks gefunden. Es zeigt verschiedene Möglichkeiten, wie man seine PHP-Anwendung konfigurieren kann. Dabei geht der Autor auf folgende Möglichkeiten ein. Konfigur...
Aufgenommen: Aug 29, 22:22