Alcuni indicatori:
Sensibilità al caso del filesystem
Se il tuo file si chiama HelloWorld.php questo:
include "helloworld.php";
è valido su Windows e funzionerà. Ma i nomi di file Linux sono case sensitive, puoi avere file chiamati HelloWorld.php
, helloworld.php
, hEllOwOrlD.php
nella stessa directory. Quindi dovresti sviluppare su Windows come se stessimo sviluppando su un filesystem sensibile al maiuscolo / minuscolo: usa esattamente i nomi file, i nomi delle directory, i nomi delle estensioni 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 preoccuparsi, 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 costante predefinita DIRECTORY_SEPARATOR
che si traduce in quella corretta, se vuoi farlo lontano:
include "classes" . DIRECTORY_SEPARATOR . "myClass.php";
Lo stesso vale per il separatore del percorso, che è il punto e virgola su Windows, altrimenti i due punti. Quindi per sicurezza dovresti fare:
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
quando è necessario un separatore di percorsi. Sebbene la maggior parte della gente pensi che dal momento che PHP non si preoccupa di quale separatore si usa, va bene, ma c'è un aspetto importante: i separatori saranno quelli specifici del sistema quando chiederai al sistema directory o percorsi. Supponiamo che tu voglia esplodere il percorso di inclusione 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 l'IDE per impostare la codifica dei file per tutti gli script su UTF-8 anziché su Cp * e il delimitatore del file line su Unix ( "\n"
invece di "\r\n"
). Nella maggior parte dei casi non ha molta importanza ma dovresti essere coerente e il modo migliore è Unix (che funziona bene su Windows ma non viceversa).