Algumas dicas:
Distinção entre maiúsculas e minúsculas do sistema de arquivos
Se o seu arquivo se chama HelloWorld.php, faça o seguinte:
include "helloworld.php";
é legítimo no Windows e funcionará. Mas os nomes de arquivo Linux são caso sensível, você pode ter arquivos chamados HelloWorld.php, helloworld.php, hEllOwOrlD.phpno mesmo diretório. Portanto, você deve desenvolver no Windows como se estivesse desenvolvendo um sistema de arquivos que .phpdiferencia maiúsculas de minúsculas: use exatamente os nomes de arquivos, nomes de diretórios e nomes de extensões corretos - também é diferente de .PHP.
Separadores de diretório e caminho
No Windows, dizemos:
include 'classes\myClass.php';
Mas no Linux diríamos:
include 'classes/myClass.php';
O PHP é inteligente o suficiente para não se importar, os dois separadores funcionam nos dois sistemas. Mas você deve ser consistente e usar a barra (/) em todos os lugares, pois também é a norma na maioria dos sistemas. Há uma constante bacana predefinidaDIRECTORY_SEPARATOR que se traduz na correta, se você quiser ir tão longe:
include "classes" . DIRECTORY_SEPARATOR . "myClass.php";
O mesmo vale para o separador de caminho, que é ponto-e-vírgula no Windows, caso contrário, dois pontos. Para estar seguro, você deve fazer:
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
quando precisar de um separador de caminho. Embora a maioria das pessoas pense que, como o PHP não se importa com o separador que você usa, está tudo bem, mas há um problema importante: os separadores serão os específicos do sistema quando você solicitar diretórios ou caminhos ao sistema. Então, digamos que você queira explodir o caminho de inclusão em suas partes:
$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ção e delimitador de arquivo
Você deve configurar seu IDE para definir a codificação de arquivo para todos os seus scripts como UTF-8 em vez de Cp * e o delimitador de linha de arquivo como Unix (em "\n"vez de "\r\n"). Na maioria dos casos, isso realmente não importa, mas você deve ser consistente e a melhor maneira é a maneira Unix (que funciona bem no Windows, mas não vice-versa).