2013-08-03 13 views
12

Sto provando a creare un file config.php che definisce una variabile globale che contiene il percorso di una directory denominata "projectfile". L'idea è che qualsiasi file può puntare a questa directory indipendentemente da dove si trova nell'albero dei file.utilizzando php __DIR__

Posso usare __DIR__ per questo? Qualcuno sarebbe disposto a darmi un esempio di come potrebbe funzionare? Stavo pensando a qualcosa di simile al seguente:

voglio definire una directory qui: nel file /config.php

$projectfiles = __DIR__("projectfiles/") 

Poi voglio un file di libreria per essere in grado di utilizzare questa variabile in /venders/library/generalfunctions.php file di

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

suggerimenti?

risposta

0

Sembra che l'architettura di questa applicazione è inferiore a quella ottimale, ma senza sapere di più, non posso commentare su questo ..

Suggerisco definendolo come una costante in modo che non può essere modificato ed è disponibile indipendentemente dall'ambito.

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

Assumendo:
/config.php
/projectfiles/include_me.php

include(PROJECTFILES.'include_me.php

Tenete a mente che __DIR__ farà riferimento alla directory che config.php è in. Se config.php è la cartella principale di projectfiles quindi l'abov e funzionerà.

3

__DIR__ è sicuramente quello che stai cercando. Usalo per fornire percorsi relativi per i file richiesti. Suggerisco caldamente di utilizzare require_once o include_once per tutti i file di libreria.

if(!defined(__DIR__)) define(__DIR__, dirname(__FILE__)); 
require_once(__DIR__ . '/../../../config.php'); 
. 
. 
. 
// you code here 

L'utilizzo della prima riga garantisce che non si verifichino problemi con PHP 5.2 e ritorno. Ciò ti consentirà di includere file basati sulla struttura delle directory anziché relativamente allo script chiamato.

Problemi correlati