2011-12-29 2 views
1

Je suis nouveau sur PHP. Je développe un nouveau site web PHP. Ma structure de dossier du site Web est comme ci-dessous,Chemin d'accès relatif au fichier de configuration dans le projet PHP

-SystemRoot 
    +Code 
    +Data_Access 
    -Public_HTML 
     +css 
     +js 
     +Templates 
    -resources 
     config.php 

Là, je dispose d'un fichier de configuration dans le répertoire des ressources, je dois inclure config.php dans la plupart des autres pages php dans différents répertoires. Je dois donc spécifier le chemin de chemin de config.php qui peut être utilisé dans le chemin du dossier eny fichier de configuration différemment dans différentes pages comme,

include_once '../resources/config.php'; 
include_once '../../resources/config.php'; 

est-il un moyen de surmonter cette & utiliser une commune (relative) dans le projet?

Quelle est la meilleure pratique pour inclure des classes dans des projets PHP?

+0

Votre dossier de travail est-il le dossier Public_HTML? Ou SystemRoot? (où est votre fichier d'index?) – James

+0

@James index.php is dans la racine du système & autres pages Web dans Public_HTML – Nalaka526

+0

Ensuite, si SystemRoom est votre répertoire domain.com/, tout ce que vous avez à faire lorsque vous utilisez est d'utiliser le chemin relatif "/ include/path ". De cette façon, le chemin d'accès inclus commence à partir de votre SystemRoom. Donc, si votre fichier inclus est dans "SystemRoot/resources/config.php", vous devriez simplement include_once ("/ resources/config.php"); dans n'importe quel fichier. (en d'autres termes, il suffit de démarrer le chemin avec un "/") – James

Répondre

2

Vous pouvez acheminer tout à votre index.php

définissent alors une constante de. Evrything routé à index.php aura alors accès à ceux-ci.

define('SELF', pathinfo(__FILE__, PATHINFO_BASENAME)); 

define('RESOURCES', SELF . 'resources/'); 
4

Je l'ai fait à peu près ce que vous avez fait dans le passé, sauf que mes require() s sont faites différemment:

require_once(str_replace('//','/',dirname(__FILE__).'/') .'../../config.php'); 

Je puis définir d'autres voies qui peuvent être utilisés tout au long comme ceci:

// DIRECTORY_SEPARATOR is a PHP pre-defined constant 
// (\ for Windows,/for Unix) 
defined('DS') ? null : define('DS', DIRECTORY_SEPARATOR); 

// Define Views URL path 
defined('VIEW_URL') ? null : define('VIEW_URL', '/application/views'); 

// Define CSS URL path 
defined('CSS_URL') ? null : define('CSS_URL', '/public/css'); 

// Define JavaScripts URL path 
defined('JS_URL') ? null : define('JS_URL', '/public/js'); 

// Define site root 
defined('SITE_ROOT') ? null : 
    define('SITE_ROOT', str_replace('//','/',dirname(__FILE__))); 

// Define App path as 'application' directory 
defined('APP_PATH') ? null : define('APP_PATH', SITE_ROOT.DS.'application'); 

// Define Includes path as 'application/includes' directory 
defined('INC_PATH') ? null : define('INC_PATH', APP_PATH.DS.'includes'); 

// Define Helpers path as 'application/helpers' directory 
defined('HELP_PATH') ? null : define('HELP_PATH', APP_PATH.DS.'helpers'); 

// Define Controllers path as 'includes/classes' directory 
defined('CTLR_PATH') ? null : define('CTLR_PATH', APP_PATH.DS.'controllers'); 

// Define Models path as 'includes/classes' directory 
defined('MOD_PATH') ? null : define('MOD_PATH', APP_PATH.DS.'models'); 

// Define Views path as 'includes/classes' directory 
defined('VIEW_PATH') ? null : define('VIEW_PATH', APP_PATH.DS.'views'); 
3

Démarrez votre script avec chdir($_SERVER['DOCUMENT_ROOT']);. De là, tous vos include s et toutes les autres fonctions de fichier telles que file_exists, fopen et ainsi de suite fonctionneront à partir du répertoire racine de votre site Web (généralement public_html).

+0

C'est ce que j'allais suggérer si vous ne travailliez pas déjà dans le répertoire racine. – James

+0

@kolink Donne 'D:/workspace' qui est le répertoire parent du répertoire SystemRoot. Quelque chose ne va pas (avec ma config php)? – Nalaka526

+0

Utilisez-vous un serveur Windows? – James

Questions connexes