Parser des répertoires

coco68100
Invité n'ayant pas de compte PHPfrance

18 janv. 2009, 23:09

Si j'ai blessé quelqu'un je m'en excuse loin de la mon attention
Mes plus plate excuse a Calimero et aux autres
C'est vrai je me suis emporté.Pardon
et je tiens a vous remercier quand meme pour vos efforts.
Desolé christophe

ViPHP
ViPHP | 4674 Messages

18 janv. 2009, 23:10

Je serai curieux que dirname(dirname(__FILE__) etc. ne fonctionne pas ?
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

coco68100
Invité n'ayant pas de compte PHPfrance

18 janv. 2009, 23:38

Oui cette syntaxe marche egalement !Mais attention
require dirname(dirname(__FILE__)).'/Modules/EnTete.php';"
La apparament on redescend d'un niveau ce n'est pas un chemin absolu si je deplace Cours.php dans un sous Repertoire de Cours ca ne marche plus.
Mais merci quand meme

La seule qui convienne a peut pres pour l'instant
require $_SERVER['DOCUMENT_ROOT'].'/Modules/EnTete.php';
Mais ca m'embete de garder document root je comprend pas pourquoi je n'y arrive pas avec
require $_SERVER['SERVER_NAME'].'/Modules/EnTete.php';
J'arrete la :-( merci a tous
Resolu

coco68100
Invité n'ayant pas de compte PHPfrance

18 janv. 2009, 23:53

Et je remercie tout ceux qui ont participés a ce probleme
Je m'excuse encore si j'ai été trop impulsif ou mal interpreté.
Mais sachez que je remercie vraiment tout le monde pour m'avoir aidé.
Calimero accept mes excuses les plus plates.(vraiment navré)
Si je suis arrivé a quelque choses c'est grace a vous tous.
Bonne soirée.Amicalement christophe

ViPHP
ViPHP | 4674 Messages

18 janv. 2009, 23:59

Sauf que ce que tu demandes est impossible. Si tu modifies ton architecture, tu auras forcément des soucis.
Sinon, il te faut une constante vers les dossiers demander, c'est une solution propre mais longue à mettre place si tu as beaucoup de dossiers. Un truc du genre :
// À la racine, le fichier Path.php
define('DS',          DIRECTORY_SEPARATOR);
define('PATH_ROOT',   dirname(__FILE__));
define('PATH_MODULE', PATH_ROOT . DS . 'Modules');
define('PATH_OTHER',  PATH_ROOT. DS . 'Other');
Et dans ton fichier de module :
require dirname(__FILE__) . '/../Path.php');
require PATH_MODULE . DS . 'EnTete.php');
On voit la limitation, à savoir que tu dois quand même te repérer par rapport au fichier Path.php. C'est un moindre mal. C'est le mieux que l'on puisse avoir je pense.

Pour ceux qui ne savent pas, DOCUMENT_ROOT peut peut-être être modifiée par un intrus, on évite de l'utiliser (même si c'est difficilement faisable de la modifier, ça l'est et c'est donc suffisant pour avoir des doutes).

Normalement, quand on construit une application, on évite de modifier l'architecture toutes les deux heures, ça me paraît logique … Sinon, c'est qu'il y a un problème dans ton application.

Sinon, encore une solution, tu peux travailler avec des chemins relatifs mais par groupe de dossiers. C'est à dire : on a à la racine trois dossiers, chacun à des sous-dossiers et tous ces dossiers n'ont pas connaissances des sous-dossiers des autres dossiers à la racine, seulement des sous-dossiers du même dossier. Je m'explique :

Code : Tout sélectionner

A/ aa/ aaa/ aab/ aac/ ab/ ac/ aca/ B/ ba/ bb/ bc/ bca/ etc.
Les groupes sont A et B. aaa connaît aac ou aca ou encore ab, mais pas ba ou bca. Tu peux donc travailler en chemin relatif dans A, pareil dans B. Tu peux donc déplacer A et B comme tu veux où tu veux. Le soucis c'est si un sous-dossier de A veut communiquer avec un sous-dossier de B, ils sont alors liés et ton architecture se fige.

T'as saisi le problème ? C'est un problème de logique, rien de plus. Il faut résoudre ce problème d'architecture.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

ViPHP
ViPHP | 2287 Messages

19 janv. 2009, 00:10

Pas de souci, c'est cool que tu t'en sois sorti. @+
if(!@work()){ Nespresso(); } else { what(); }
______________________________