Was ist der einfachste Weg, eine einzelne Nummer auf einem Server zu speichern, so dass jedes Skript mit PHP darauf zugreifen kann? Derzeit habe ich eine Nummer in einer Datei gespeichert, aber das scheint etwas unelegant.Konstante Servervariablen?
Antwort
Hier gibt es keine richtige Antwort, aber die meisten modernen PHP-Systeme zum Erstellen von Webanwendungen haben irgendeine Art von Konfigurationsobjekt. Dies wird oft als Singleton implementiert.
//brain dead config object
class NamespaceConfiguration {
public static function getInstance() {
if (!self::$instance instanceof self) {
self::$instance = new self;
}
return self::$instance;
}
public static function set($key,$value){
//code to set $key/$value paid
}
public static function get($key){
//code to get a $value based on a $key
}
}
$config = NamespaceConfiguration::getInstance();
$config->set('myNumber',42);
....
function somewhereElse(){
$config = NamespaceConfiguration::getInstance();
$myNumber = $config->set('myNumber');
}
Diese Klasse wird auf jeder angeforderten Seite geladen. Dies gibt jedem Entwickler eine Standard-API, die aufgerufen werden kann, wenn er einzelne Konfigurationswerte abrufen oder setzen möchte, und ermöglicht einem einzelnen Entwickler, den Speicherort und die Art des Abrufs zu steuern (was eine flache Datei, XML-Datei, Speichercache, MySQL-Datenbank, in einer MySQL-Datenbank gespeicherte XML-Datei, in einer MySQL-Datenbank gespeicherte XML-Datei, die einen Knoten enthält, der auf eine Datei verweist, die den Wert enthält, usw.)
Das Wo und Wie des Abrufens hängt davon ab Ihre Anwendungsumgebung, obwohl Sie mithilfe eines Konfigurationsobjekts im Voraus einige Effizienzen erstellen können (Speichern bereits abgerufener Werte in einem Eigenschaftscache, Vorababruf bestimmter Werte bei der Instanziierung usw.)
Ihre beste Wette wäre, es in eine MySQL-Tabelle für später holen. Das ist wahrscheinlich der beste Weg, um Informationen in PHP zu speichern.
Datenbank über Flat-File jeden Tag. – UnkwnTech
Da Ihre Anwendung wahrscheinlich bereits irgendeine Art von Include-Datei oben auf "header.php" oder ähnlich hat, könnten Sie einfach eine Konstante/Variable in dieser Datei erstellen, und alle Dateien, die den Header enthalten Zugang zur Konstante.
Dies kann Ihnen helfen, die Konstante zu definieren: http://php.net/constant
, die auf den Eigenschaften der Zahl abhängt. Wird es oft aktualisiert/modifiziert? Ist es die einzige solche Nummer? Wenn es nicht geändert wird, ist es wahrscheinlich besser zu tun, wie Espo es vorschlägt und speichert es als eine PHP-Konstante, die bei Bedarf eingefügt werden kann. Wenn Sie andere solche Nummern haben, können Sie sie alle in diese Datei einfügen. Wenn sie oft aktualisiert werden, ist es wahrscheinlich besser, sie in die Datenbank zu stellen.
Aber. Wenn es sich um eine einzelne Nummer handelt, die sich ändern kann und Sie keine Notwendigkeit für das Speichern anderer Zahlen haben, warum nicht eine Datei verwenden? Denken Sie daran, flock() beim Aktualisieren zu verwenden, um Nebenläufigkeitsprobleme zu vermeiden.
Wenn es eine Variable ist, die mehr ist von einer ökologischen Natur könnte man immer Verwenden Sie die in Apache in httpd.conf festlegen können Sie folgende Einstellungen vor:
SetEnv myVar myValue
Sie können dann _SERVER $ verwenden, um ihn zu holen
$_SERVER['myVar']
ich in der Regel Zugriffe auf Variablen auf diesen Satz, wenn ich bin um dieselbe Anwendung auf ein paar verschiedenen virtuellen Hosts zu installieren, aber nicht, dass sie unterschiedliche Parameter in der Konfigurationsdatei haben.
Eine Konfigurationsdatei wird auch Ihren Anforderungen entsprechen. Es gibt einige einfach zu verwendende Klassen im Zend-Framework, die helfen können http://framework.zend.com/manual/en/zend.config.html spezifischer Abschnitt 7.3 und 7.4 beschreibt, wie Sie Config-Parameter in einer Nur-Text-Datei oder in XML schreiben können.
, wenn Sie nur alte PHP lieber haben Sie die Funktion parse_ini_file, die Sie lesen in der Konfigurationsparameter aus einer Textdatei Optionen http://us.php.net/parse_ini_file
Sie können auch verwenden, um die Alternative PHP Cache oder einem anderen Caching lässt.
http://www.php.net/manual/en/function.apc-add.php
Und Sie können dies mit den anderen Lösungen in Kombination verwendet werden oben aufgelistet, beispiel einer Config-Cache zu speichern.
- 1. asp.net mvc wann sollte ich Servervariablen lesen?
- 2. Integrationstest für HTTP-Handler aktuelle Anfrage Servervariablen
- 3. konstante Elemente vs. konstante Array
- 4. Übertragen eines Daten des Objekts (insbesondere Servervariablen) über RMI
- 5. Konstante Zeiger vs Zeiger auf konstante
- 6. Konstante Instanzvariablen?
- 7. Konvertieren einer Zeichenfolgendarstellung einer Konstante in eine Konstante?
- 8. Konstante Flask Session IDs
- 9. Konstante in objective-c
- 10. Android: Konstante Speicherverbrauch/dumpGfxInfo()
- 11. nicht initialisierte Konstante Homecontroller
- 12. Mysql wählen Doppel Konstante
- 13. Verwendung von undefined Konstante
- 14. Ruby: Konstante, Modul, Hash
- 15. Java String-Konstante Pool
- 16. Eloquent Tinker - undefinierte Konstante
- 17. Konstante mit mehreren Werten?
- 18. nicht initialisierte Konstante Rspec
- 19. Golang Konstante struct Schlüssel
- 20. GO lang - Konstante abgeschnitten
- 21. Verwendung der undefinierten Konstante
- 22. Konstante Breitengradlinie in Matlab
- 23. Konstante innerhalb der Klasse
- 24. Templates und konstante Strings
- 25. VHDL-Konstante in Generics
- 26. Routingfehler: nicht initialisierte Konstante
- 27. nicht initialisierte Konstante Reservierungen
- 28. Präprozessor-Konstante Auswertung
- 29. nicht initialisierte Konstante RoR
- 30. Konstante Deprecated: preg_replace() Fehler
+1, das ist, was ich im Falle einer 'einzigen Nummer' tun würde – karim79
meintest du 'Get' in der letzten Zeile des Codes? – Kuf