Code Igniter - der beste Ort, um globale Variable zu deklarieren

8

Ich habe viele ähnliche Fragen gelesen, sie mögen doppelt erscheinen, aber keiner fragt genau, was ich verlange, und wichtiger: Keiner hat die ANTWORT, nach der ich suche!

Es ist extrem einfach: Ich möchte nur ein $variable an mehreren Stellen verwenden: nicht nur Ansichten und Controller, sondern auch in den routes.php und anderen Konfigurationsdateien.

Ich möchte keine Dinge wie: Verwenden Sie die Config-Klasse, um Konfigurationsdateien zu laden; Verwenden Sie CI's get_instance und so weiter.

Ich möchte nur ein gegebenes $variable deklarieren (es könnte eine Konstante sein, aber ich brauche es als Variable), und verwende es absolut überall.

Tatsächlich ... würde ich gerne wissen, welche PHP-Datei im CI-Bootstrap als eine der ersten analysiert wird, also könnte ich meine globale Variable dort einführen ... aber keine Kern / System- oder inapporierte Datei , aber die "beste" geeignete Platzierung für diese einfache Anforderung.

Danke.

    
J. Bruni 09.06.2013, 19:36
quelle

5 Antworten

29

Es gibt eine Datei in /application/config namens constants.php

Normalerweise lege ich alle meinen da drin mit einem Kommentar, um leicht zu sehen, wo sie sind:

%Vor%

Nachdem Ihr index.php geladen ist, lädt es die Datei /core/CodeIgniter.php , die dann wiederum die gemeinsamen Funktionen file /core/Common.php und dann /application/constants.php so in die Kette der Dinge lädt, dass es die vierte Datei ist, die geladen werden soll.

    
Dale 09.06.2013, 19:41
quelle
3

Ich verwende eine "Globals" -Klasse in einer Hilfsdatei mit statischen Methoden, um alle globalen Variablen für meine App zu verwalten. Hier ist was ich habe:

globals_helper.php (im Verzeichnis helpers)

%Vor%

Dann lade dies automatisch in der Datei autoload.php

%Vor%

Schließlich können Sie für die Verwendung von überall im Code aus die Variablen setzen:

%Vor%

Und das, um es zu lesen:

%Vor%

Hinweis: Der Grund, warum ich die Initialisierungsaufrufe in der Globals-Klasse verlassen habe, ist eine zukünftige Erweiterbarkeit mit Initialisierern für die Klasse, falls erforderlich. Sie können die Eigenschaften auch öffentlich machen, wenn Sie keine Kontrolle darüber haben müssen, was über die Setter / Getter eingestellt und gelesen wird.

    
Spartak 24.05.2015 17:42
quelle
1

Sie könnten auch eine constants_helper.php-Datei erstellen und dann Ihre Variablen dort einfügen. Beispiel:

%Vor%

Dann laden Sie in Ihrer Anwendung / config / autoload.php Ihren contstants-Helfer automatisch

%Vor%     
lucentx 11.12.2013 07:34
quelle
1

in der Dateianwendung / conf / contants.php:

%Vor%

und fügen Sie irgendeine Header-Datei oder innerhalb einer Funktion:

%Vor%     
user1817927 10.04.2015 23:21
quelle
0

Der beste Ort, um global variable in codeigniter zu deklarieren, ist die constants.php -Datei im Verzeichnis /application/config

Sie können Ihre globale Variable wie folgt definieren

%Vor%     
Mad Angle 10.09.2014 11:36
quelle