2013-08-03 2 views
12

Ich versuche, eine config.php-Datei zu erstellen, die eine globale Variable definiert, die den Pfad zu einem Verzeichnis namens "projectfiles" enthält. Die Idee ist, dass jede Datei auf dieses Verzeichnis verweisen kann, unabhängig davon, wo sie sich in der Dateistruktur befindet.mit PHP __DIR__

Kann ich __DIR__ dafür verwenden? Wäre jemand bereit, mir ein Beispiel zu geben, wie das funktionieren könnte? Ich dachte an so etwas wie die folgenden:

Ich möchte hier ein Verzeichnis definieren: in der /config.php Datei

$projectfiles = __DIR__("projectfiles/") 

Dann habe ich eine Bibliotheksdatei diese Variable in der Lage sein wollen, in /venders/library/generalfunctions.php-Datei zu verwenden

include("../../../config.php"); 
$file = $projectfiles/testfile.php 

Vorschläge?

Antwort

0

Es ist wie die Architektur dieser Anwendung aussieht, ist weniger als optimal, aber ohne mehr zu wissen, kann ich dazu nichts sagen ..

ich es als eine Konstante empfehlen definieren, so dass sie nicht verändert werden können, und ist unabhängig vom Umfang verfügbar.

define('PROJECTFILES',__DIR__.'/projectfiles/');

Unter der Annahme:
/config.php
/projectfiles/include_me.php

include(PROJECTFILES.'include_me.php

Beachten Sie, dass __DIR__ das Verzeichnis verweisen, dass config.php in ist. Wenn config.php der übergeordnete Ordner projectfiles ist, dann ist der abov e wird funktionieren.

3

__DIR__ ist sicherlich das, was Sie suchen. Verwenden Sie es, um relative Pfade für erforderliche Dateien bereitzustellen. Ich würde sehr empfehlen, require_once oder include_once für alle Bibliotheksdateien zu verwenden.

Die Verwendung der ersten Zeile stellt sicher, dass Sie keine Probleme mit PHP 5.2 und zurück bekommen. Dadurch können Sie Dateien basierend auf der Verzeichnisstruktur statt relativ zum aufgerufenen Skript einbeziehen.