Manière de définir PHP include path pour * Nix et Windows

Est-ce la bonne façon de define un chemin d’inclusion pour * nix et Windows ?

 define( 'INCPATH', realpath( dirname( __FILE__ ) ) . '/' ); 

Notez la barre oblique avant de fin que j’ai incluse ci-dessus. Est-ce que la barre oblique vers l’avant pour inclure / requirejs la même chose pour les deux systèmes d’exploitation, aussi?

EDIT (MISE A JOUR AVEC REPONSE):

D’après ce que je peux comprendre, mon code ci-dessous est la manière appropriée de définir universellement un chemin d’inclusion / exigence pour les systèmes d’exploitation * nix et Windows. N’hésitez pas à corriger quoi que ce soit dans les commentaires ci-dessous.

Ce qui m’a déconcerté, ce sont les nombreux exemples que j’ai vus montrant le remplacement des back-slashes (\) par forward-slashes(/) . Sur la base de certaines des réponses ci-dessous, cela est inutile.

Donc, le code correct final (pour le puriste) est:

 define( 'INCPATH', realpath( dirname( __FILE__ ) ) . DIRECTORY_SEPARATOR ); 

Ce code produit les résultats suivants:

*nix: /path/to/the/file/

Windows: C:\Path To\the\file\

Une brève explication, allant de l’intérieur ( __FILE__ ) à la sortie ( realpath() ):

FILE Le chemin complet et le nom du fichier. Contient toujours un chemin absolu avec les liens symboliques résolus.

dirname () La chaîne renvoyée est le chemin d’ access avec tout élément de fin / composant supprimé. Responsable de la suppression du nom de fichier.

realpath () Retourne le chemin absolu canonicalisé (normalisé / normalisé) en cas de succès. Le chemin résultant n’aura aucun lien symbolique, ni composants '/./' ou '/../' . Je suppose que cela est inclus pour la précision, car __FILE__ résout déjà les liens symboliques. Ou peut-être est-il inclus pour résoudre les chemins relatifs? De toute façon, cela semble solidifier notre objective.

Les barres obliques fonctionnent pour les deux systèmes d’exploitation, et c’est la voie à suivre.

Je n’ai pas trouvé de référence absolue à cela, mais cela est indiqué à plusieurs endroits dans le manuel PHP, comme ici et ici . Et ça marche pour moi, un utilisateur Windows & Linux.

Enfin, vous pouvez finir par spécifier des chemins mixtes sous Windows, comme c:\\apache\\htdocs\\myapp/index.php , et que tout fonctionne bien.

Sinon, vous pouvez utiliser la constante prédéfinie DIRECTORY_SEPARATOR de PHP, qui vous donnera le délimiteur de répertoire spécifique à l’OS. Voir aussi http://www.php.net/manual/en/dir.constants.php .

Pour beaucoup de gens, / fonctionne très bien sur Windows et MSDOS. Dans les chemins d’access, cela fonctionne même avec OpenVMS.

Cependant, si vous faites quelque chose dans PHP pour les chemins, un tableau serait une structure plus pratique qu’une chaîne.

 $MYPATH = array ('.', '/usr/lib/', '/usr/share/lib');