Alcuni suggerimenti:
Case sensitive filesystem
Se il tuo file si chiama HelloWorld.php questo:
include "helloworld.php";
è legittimo su Windows e funzionerà. Ma i nomi dei file Linux sono case sensitive, si può avere file chiamati HelloWorld.php, helloworld.php, hEllOwOrlD.phpnella stessa directory. Quindi dovresti sviluppare su Windows come se stessi sviluppando su un filesystem con distinzione tra maiuscole e minuscole: usare esattamente i nomi di file, i nomi di directory, i nomi di estensione corretti - .phpè anche diverso da .PHP.
Separatori di directory e percorsi
In Windows diciamo:
include 'classes\myClass.php';
Ma in Linux diremmo:
include 'classes/myClass.php';
PHP è abbastanza intelligente da non preoccuparsene, entrambi i separatori funzionano in entrambi i sistemi. Ma dovresti essere coerente e andare con la barra (/) ovunque poiché è anche la norma sulla maggior parte dei sistemi. C'è una bella costante predefinita DIRECTORY_SEPARATOR che si traduce in quella corretta, se vuoi andare così lontano:
include "classes" . DIRECTORY_SEPARATOR . "myClass.php";
Lo stesso vale per il separatore di percorso, che è punto e virgola su Windows, in caso contrario due punti. Quindi, per sicurezza, dovresti fare:
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
quando è necessario un separatore di percorso. Anche se la maggior parte delle persone pensa che dal momento che a PHP non importa quale separatore usi, va bene, ma c'è un problema importante: i separatori saranno quelli specifici del sistema quando chiedi al sistema directory o percorsi. Quindi supponiamo che tu voglia far esplodere il percorso include nelle sue parti:
$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!!!
Codifica e delimitatore di file
Dovresti impostare il tuo IDE per impostare la codifica dei file per tutti i tuoi script su UTF-8 invece di Cp * e il delimitatore della linea di file su Unix ( "\n"anziché "\r\n"). Nella maggior parte dei casi non importa davvero, ma dovresti essere coerente e il modo migliore è il modo Unix (che funziona bene su Windows ma non viceversa).