2010-04-09 15 views
5

en mi config.php donde tengo todas las constantes configuro la RUTA en una ruta absoluta.utiliza una ruta absoluta o relativa?

pero esto significa que cuando muevo la carpeta de mi aplicación, tengo que cambiar esta ruta.

me pregunto si es mejor establecer una ruta relativa, de esa manera cada vez que muevo mi aplicación entre la carpeta de producción y desarrollo, no tengo que cambiarla.

¿Qué hacen cuando se mueven entre carpetas?

+0

cómo interesante - una pregunta que ofrece dos alternativas, que tiene cuatro respuestas. Por cierto, relativo - cada vez (hmm, ¿cuentas $ _SERVER [] como relativo o absoluto?) – Mawg

+0

Estoy seguro de que esto se ha preguntado antes. – staticsan

Respuesta

8

La mejor manera que he encontrado es hacer lo siguiente:

define("PATH", realpath(dirname(__FILE__))); 

que le brinda el directorio del archivo actual. Si hace esto en su archivo de configuración/bootstrap/init, lo tendrá disponible para su aplicación, y funcionará para cualquier sistema de archivos.

+0

Mi método es similar, excepto el anidamiento de las funciones. ¿Importa o he pasado por alto algo? – alex

+0

Ja ja, agradable. No, no debería importar – zombat

+0

¿Qué significa realpath? y que pasa sin eso? –

3

__FILE__ es tu amigo.

1

OMI, las rutas absolutas son malas noticias. Incluso si no planea mudarse, su proveedor de hosting podría moverlo, como DreamHost me hizo recientemente. Yo estaba bien .... pero hay 14 referencias al "camino" en su wiki: http://wiki.dreamhost.com/Server_Moves

+1

Esta es la razón por la cual la declaración constante era relativa a __FILE__, que siempre será válida, incluso si el servidor se mueve físicamente. –

3
define('BASE_PATH', dirname(realpath(__FILE__))); 

Esto hará que sus scripts sean más portátiles.

incluir un archivo como este

include BASE_PATH . 'includes/header.php'; 
1

hago tres cosas para resolver este:

  1. La primera es utilizar rutas relativas al archivo actual e incluyen cosas usando dirname(__FILE__).

  2. El segundo es usar un cargador que incluye todas las páginas carga. Este archivo tiene una responsabilidad: encontrar el directorio de inclusión, generalmente a través de una llamada relativa. Mientras permanezca esta relación relativa, no es necesario cambiarla.

  3. También me gusta apoyar a los ajustes personalizados que pertenecen a la instalación en lugar de la base de código . Esto se realiza mediante un mecanismo de inclusión y anula algunas configuraciones que serán específicas para el servidor en el que se encuentra el código.

Cuestiones relacionadas