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.php
no mesmo diretório. Portanto, você deve desenvolver no Windows como se estivesse desenvolvendo um sistema de arquivos que .php
diferencia 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).