Problème avec le $dir en langage php

Fermé
lola - 2 mai 2009 à 01:52
 le père - 2 mai 2009 à 18:15
Bonjour,
que signifie: $dir = DOL_DOCUMENT_ROOT.'/mysql/tables/mymodule/'; en php ?
j'essaie de développer un module dolibarr à l'aide du tutoriel existant sur wiki.dolibarr.org mais je ne comprend pas cette ligne. et le plus grave c'est qu'elle n'existe pas dans le mymodule. le mymodule est le module que je dois développer...en fait je le developpe à partir d'un code php standard. et donc cette ligne, je ne sais pas si je dois l'ajouter................
merci d'avance à tous ceux qui répondront !
A voir également:

2 réponses

Bonjour

$dir = DOL_DOCUMENT_ROOT.'/mysql/tables/mymodule/';

le $dir = signifie que tu affectes à la variable $dir le valeur située à droite du =
Cette valeur est obtenue en concaténant (c'est à dire en mettant bout à bout) deux autres valeurs : DOL_DOCUMENT_ROOT et '/mysql/tables/mymodule/'. C'est le point entre DOL_DOCUMENT_ROOT et '/mysql/tables/mymodule/' qui nous indique qu'il s'agit d'une concaténation
DOL_DOCUMENT_ROOT ne signifie a priori rien en PHP, ça n'est pas une variable non plus. C'est donc certainement une constante qui a été définie ailleurs dans le programme avec une instruction équivalente à define('DOL_DOCUMENT_ROOT','quelque chose')
enfin, '/mysql/tables/mymodule/' représente une chaine de caractères, c'est à dire la suite des caractères qui sont entre les deux apostrophes.
0
Merci le père pour ta réponse.
seulement, je ne trouve pas le define('DOL_DOCUMENT_ROOT','quelque chose') ,j'ai juste ceci au début du module.php qui permet de charger tous les modules de l'ERP:
$dir = DOL_DOCUMENT_ROOT . "/includes/modules/";
et un peu plus loin, ceci:
include_once(DOL_DOCUMENT_ROOT."/includes/modules/ ".$file)

Au début du mymodule.php( module que je développe) il n'y a pas de :
define('DOL_DOCUMENT_ROOT','quelque chose')
juste ceci:
include_once(DOL_DOCUMENT_ROOT ."/includes/modules/DolibarrModules.class.php"); et c'est le seul endroit où apparaît le DOL_DOCUMENT_ROOT dans le script.
donc je ne comprend pas non plus pourquoi le define('DOL_DOCUMENT_ROOT','quelque chose') n'existe pas au début des 2 scripts php. et pourquoi la chaîne de caractère '/mysql/tables/mymodule/' est remplacé par '/includes/modules'.
0
Si ton script marche, c'est que ce DOL_DOCUMENT_ROOT est défini. Et si tu ne le vois pas dans le fichier que tu regardes, c'est qu'il est dans un fichier inclus. Il y a certainement un include ou require vers le début de ton script, cette constante est définie dedans.
Visiblement, elle sert à contenir le nom d'un certain répertoire qui sert de racine à partir de laquelle sont "fabriqués" les noms d'autres répertoires. Comme ça, quand on installe le script dans une autre structure, on a juste la définition de DOL_DOCUMENT_ROOT à changer et les noms de tous les répertoires restent corrects
0