8768 sujets

Développement web côté serveur, CMS

Bonjour,

Dans nos développements PHP (hors frameworks etc) on se heurte souvent au même problème quand on appelle des fichiers avec des 'include' ou 'require' on a souvent besoin de jongler avec les arborescences, .../ ../../ etc.... si les fichiers sont imbriqués dans des arborescences et si les fichiers appelés en appellent d'autres.

Je pensais créer une variable de session avec la valeur de $_SERVER["SERVER_NAME"] et m'en servir pour construire la chaine correspondante au fichier à inclure, par exemple
$mavariable = $_SERVER["SERVER_NAME"];
include($mavariable . '/incl/ma_classe.php');

Est ce que ce la fait partie des pratiques acceptables?
je ne dois pas être le premier à être confronté à ce problème ..
Hello Smiley smile

Moi en général je fais ça pour les includes php Smiley cligne

set_include_path(get_include_path() . PATH_SEPARATOR . $_SERVER["DOCUMENT_ROOT"]);

Et pour tous le reste je considère que je pars toujours de la racine du site Smiley smile

c'est plus simple Smiley smile
pchlj a écrit :
Hello Smiley smile

Moi en général je fais ça pour les includes php Smiley cligne

set_include_path(get_include_path() . PATH_SEPARATOR . $_SERVER["DOCUMENT_ROOT"]);

Et pour tous le reste je considère que je pars toujours de la racine du site Smiley smile

c'est plus simple Smiley smile


je vais étudier ça...
je ne connaissais pas ces fonctions php,
merci à toi
Modérateur
Et l'eau,

Perso, je me code quelques constantes pour définir mes chemins principaux (app/public/css/img/controller/model/view/js/etc.). Je pars du principe qu'index.php est dans mon dossier public. Le dossier public étant à la racine de mon projet. Pour trouver la racine '/', je n'ai qu'à faire


define('ROOT', dirname(dirname($_SERVER["PHP_SELF"])));


Ensuite mes chemins sont tous en absolus pour les fichiers basiques.

Pour le chargement des classes en php, j'utilise les recommandations du psr0 et du psr4.
Modifié par niuxe (21 Feb 2018 - 01:52)