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.php
nella 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).