Making PHP beinhaltet Arbeit in einem Unterverzeichnis

8

Ok, ich erstelle eine Admin-Schnittstelle für mein eigenes Blog unter der URL / admin.

Ist es möglich, dass ich dieselben Includes (einschließlich Autoload) als Root-Verzeichnis verwenden kann.

Wenn möglich, würde ich auch gerne in der Lage sein, die Links in der Navigation automatisch zu korrigieren, so dass sie die index.php in / an ../index.php wechseln, wenn sie von / admin aus aufgerufen werden.

Danke, Nico

    
Nico Burns 24.07.2009, 22:20
quelle

4 Antworten

19

Dies ist die beste Methode, um eine 'ABSOLUTE_PATH'-Konstante zu definieren, die das Verzeichnis enthält, unter dem sich alles befindet. Danach können Sie einfach alles kopieren und einfügen, weil es den 'vollen' Pfad definiert, der sich nicht von Verzeichnis zu Verzeichnis ändert.

Beispiel

%Vor%

Dann können Sie jederzeit einfach eine Datei einfügen

%Vor%     
Tyler Carter 24.07.2009, 22:23
quelle
3

Am einfachsten wäre es, absolute Pfade / URLs zu verwenden.

Definieren Sie für die URLs eine Konstante / Variable, die auf die Wurzel Ihrer Anwendung verweist, wie:

%Vor%

oder

%Vor%

Und benutze es in jedem Link, wie:

%Vor%

Auf diese Weise ist immer OK (und an dem Tag, an dem Sie Ihr Projekt auf einem anderen Server oder in einem Unterverzeichnis installieren, haben Sie nur eine Konstante / Variable zu ändern, und alles funktioniert immer noch)

Für includes / requires, verwende immer auch absolute pathes; Eine Lösung besteht darin, dirname wie folgt zu verwenden:

%Vor%

__FILE__ ist die aktuelle Datei, in die Sie diese Zeile schreiben; dirname ruft den Pfad (den vollständigen Pfad) zum Verzeichnis ab, das diese Datei enthält.

Damit müssen Sie sich keine Gedanken über die relativen Pfade Ihrer Dateien machen.

    
Pascal MARTIN 24.07.2009 22:27
quelle
0

Noch eine andere Antwort wäre ähnlich der Kombination der ersten beiden Vorschläge. Sie könnten die Konstante definieren:

%Vor%

Nehmen wir an, dass config.php in vielen Dateien der Site enthalten sein muss, dann können Sie die folgende Anweisung verwenden, um dies zu erreichen:

%Vor%

Hoffe, das hilft.

    
Ivan Novak 24.07.2009 22:35
quelle
0

Eine andere Option, die ich in der Vergangenheit für functions.php verwendet habe, ist ein Klassen-Autoloader.

%Vor%

Dies funktioniert unter bestimmten Umständen und war mir in der Vergangenheit hilfreich, wenn ich keine absolute $ root-URL definieren wollte.

    
DragonKyn 11.07.2017 17:20
quelle

Tags und Links