Quelques conseils:
Sensibilité à la casse du système de fichiers
Si votre fichier s'appelle HelloWorld.php, ceci:
include "helloworld.php";
est légitime sur Windows et fonctionnera. Mais les noms de fichiers Linux sont sensibles à la casse, vous pouvez avoir des fichiers appelés HelloWorld.php
, helloworld.php
, hEllOwOrlD.php
dans le même répertoire. Vous devez donc développer sous Windows comme si vous développiez sur un système de fichiers sensible à la casse: utilisez exactement les noms de fichiers, noms de répertoire, noms d'extension corrects - .php
est également différent de .PHP
.
Séparateurs de répertoires et de chemins
Sous Windows, nous disons:
include 'classes\myClass.php';
Mais sous Linux, nous dirions:
include 'classes/myClass.php';
PHP est assez intelligent pour ne pas s'en soucier, les deux séparateurs fonctionnent dans les deux systèmes. Mais vous devez être cohérent et utiliser la barre oblique (/) partout car c'est également la norme sur la plupart des systèmes. Il y a une constante prédéfinie astucieuse DIRECTORY_SEPARATOR
qui se traduit par la bonne, si vous voulez aller aussi loin:
include "classes" . DIRECTORY_SEPARATOR . "myClass.php";
Il en va de même pour le séparateur de chemin d'accès, qui est un point-virgule sous Windows, deux-points sinon. Donc, pour être en sécurité, vous devez faire:
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
lorsqu'il a besoin d'un séparateur de chemin. Bien que la plupart des gens pensent que PHP ne se soucie pas du séparateur que vous utilisez, c'est correct, mais il y a un hic important: les séparateurs seront ceux spécifiques au système lorsque vous demandez au système des répertoires ou des chemins. Supposons donc que vous souhaitiez faire exploser le chemin d'inclusion dans ses parties:
$includePath = get_include_path();
$pathParts = explode(";", $includePath) // Will only work on Windows
$pathParts = explode(":", $includePath) // Will work on other systems but not Windows
$pathParts = explode(PATH_SEPARATOR, $includePath) // Will work everywhere!!!
Encodage et délimiteur de fichier
Vous devez définir votre IDE pour définir le codage de fichier pour tous vos scripts sur UTF-8 au lieu de Cp *, et le délimiteur de ligne de fichier sur Unix ( "\n"
au lieu de "\r\n"
). Dans la plupart des cas, cela n'a pas vraiment d'importance, mais vous devez être cohérent et la meilleure façon est la méthode Unix (qui fonctionne bien sous Windows mais pas l'inverse).