Quando si programma in C, ottengo spesso il consiglio di attivare molti o tutti gli avvertimenti e non ignorare gli avvertimenti.
Lo stesso vale per PHP, dovrei abilitare tutti gli avvisi nel log di PHP?
Quando si programma in C, ottengo spesso il consiglio di attivare molti o tutti gli avvertimenti e non ignorare gli avvertimenti.
Lo stesso vale per PHP, dovrei abilitare tutti gli avvisi nel log di PHP?
Il livello di log predefinito per PHP esclude gli avvisi, es. è E_ALL & ~E_NOTICE
per PHP 5.2, E_ALL & ~E_NOTICE & ~E_STRICT
per 5.3 e E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
per 5.4.
Se lavori solo con il tuo codice, allora è molto meglio impostarlo su E_ALL
. Vedere le notifiche ti farà risparmiare molto tempo di debug, vedendo la deprecazione e le notifiche di compatibilità, ti farà risparmiare un sacco di problemi con l'aggiornamento a PHP più recente.
Tuttavia, se stai lavorando con codice di terze parti, l'attivazione di tutte le notifiche ( E_NOTICE
, E_STRICT
e E_DEPRECATED
) può portare allo spamming del tuo log, poiché un sacco di codice precedente genererà un avviso ogni poche righe di codice.
Sì, certo. Perché sulla Terra non vorresti rilevare automaticamente quanti più problemi e potenziali problemi puoi, specialmente quando parti da zero?
Abilitare gli avvertimenti in PHP dà un vantaggio in più per un programmatore di sapere dove la sua codifica sta andando male su quale pagina, linea, ecc ... immagina manualmente il controllo di 1000 della linea per rilevare un errore, se hai incluso più file, quindi devi controllare quanti ne hai. Pertanto, è meglio metterlo in pratica per un punto di vista del programmatore!.
Nella fase di sviluppo del progetto preferisco avere: "E_ALL | E_STRICT" con display_errors attivato anche così posso ottenere tutti i possibili avvisi / erori / notifiche e così via. Solo un semplice lapsus in $ user vs $ usr può creare un sacco di problemi in seguito e PHP senza questa impostazione non creerà problemi di build ma genererà una logica di business rotta.
In modalità produzione è meglio averli attivati, ma disabilitati flag_errors. Puoi creare il tuo gestore degli errori personalizzato in modo che i registri possano essere scritti lì o utilizzare per esempio il log degli errori Apaches per trovarli (quelli personalizzati sono migliori dal momento che puoi scrivere più contesto di cui hai bisogno)
Leggi altre domande sui tag programming-practices php