Ver Mensaje Individual
  #2  
Antiguo 23-08-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Una opción es centralizar este tipo de rutas en un archivo de configuración que incluyes en todos tus scripts. Por ejemplo:

config.php

Código PHP:
define('DIR_BASE''c:/www' DIRECTORY_SEPARATOR);
define('DIR_LIB'DIR_BASE 'lib' DIRECTORY_SEPARATOR);
define('DIR_THIRDPARTY'DIR_LIB 'thirdparty' DIRECTORY_SEPARATOR);
define('DIR_PDF'DIR_THIRDPARTY 'fpdflib' DIRECTORY_SEPARATOR);
define('DIR_TEMPLATES'DIR_BASE 'templates' DIRECTORY_SEPARATOR);

etc
DIRECTORY_SEPARATOR es una constante predefinida que toma el valor correcto según si estás en unix o windows. Esto se lo aprendí a dec, y es muy útil porque evitas cargar la constante en el resto de scripts:

Código PHP:
require_once('config.php');
require_once(
DIR_PDF 'fpdf.php'); 
en lugar de

Código PHP:
require_once('config.php');
require_once(
DIR_PDF DIRECTORY_SEPARATOR 'fpdf.php'); 
El archivo config.php en sí lo puedes situar en la raíz de los documentos http, por ejemplo, c:/www/html.

Si mantienes una misma estructura de directorios:

Código:
base
  |
  +---- lib
  |      |
  |      +---- thirdparty
  |      |      |
  |      |      +---- fpdf
  |      |      |
  |      |      +---- biff
  |      |
  |      +---- database
  |      |
  |      +---- whatever
  |
  +---- templates
  |
  .
  .
  .
en principio bastará cambiar la ruta base pues todas las demás derivan de ella.

Por otra parte, te comento que no es necesario poner tus directorios fuera de la raíz web. Si usas Apache, puedes restringir el acceso externo a directorios completos poniendo un archivo .htaccess dentro:

.htaccess
Código:
Order allow,deny
aunque para ello, el servidor debe habilitar la reescritura de directivas en tu raiz web.

// Saludos
Responder Con Cita