-
Notifications
You must be signed in to change notification settings - Fork 14
Expand file tree
/
Copy pathbasics.xml
More file actions
99 lines (88 loc) · 4.07 KB
/
basics.xml
File metadata and controls
99 lines (88 loc) · 4.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: de9c65c91ff1710d8b2d2ec955caea0162679305 Maintainer: lacatoire Status: ready -->
<sect1 xml:id="language.errors.basics" xmlns="http://docbook.org/ns/docbook">
<title>Nozioni di base</title>
<para>
PHP segnala gli errori in risposta a una serie di condizioni di errore interne.
Questi possono essere utilizzati per segnalare diverse condizioni e possono essere
visualizzati e/o registrati nei log come richiesto.
</para>
<para>
Ogni errore generato da PHP include un tipo. Un
<link linkend="errorfunc.constants">elenco di questi tipi di errore</link> è disponibile,
insieme a una breve descrizione del loro comportamento e di come possono essere
causati.
</para>
<sect2 xml:id="language.errors.basics.handling">
<title>Gestione degli errori con PHP</title>
<para>
Se non è impostato alcun gestore di errori, PHP gestirà ogni errore che si verifica
secondo la sua configurazione. Quali errori vengono segnalati e quali vengono
ignorati è controllato dalla direttiva php.ini
<link linkend="ini.error-reporting"><parameter>error_reporting</parameter></link>,
o a runtime chiamando
<function>error_reporting</function>. Si raccomanda vivamente di impostare la
direttiva di configurazione, poiché alcuni errori possono verificarsi prima che
l'esecuzione dello script inizi.
</para>
<para>
In un ambiente di sviluppo, è consigliabile impostare sempre
<link linkend="ini.error-reporting"><parameter>error_reporting</parameter></link>
a <constant>E_ALL</constant>, poiché è necessario essere a conoscenza dei
problemi segnalati da PHP e correggerli. In produzione, è possibile impostare un livello
meno verboso come
<code>E_ALL & ~E_NOTICE & ~E_DEPRECATED</code>, ma
in molti casi <constant>E_ALL</constant> è comunque appropriato, poiché può
fornire un avviso anticipato di potenziali problemi.
</para>
<para>
Ciò che PHP fa con questi errori dipende da altre due direttive php.ini.
<link linkend="ini.display-errors"><parameter>display_errors</parameter></link>
controlla se l'errore viene mostrato come parte dell'output dello script. Questo
dovrebbe essere sempre disabilitato in un ambiente di produzione, poiché può includere
informazioni riservate come le password del database, ma è spesso utile
abilitarlo in sviluppo, poiché garantisce la segnalazione immediata dei problemi.
</para>
<para>
Oltre a visualizzare gli errori, PHP può registrare gli errori nei log quando la direttiva
<link linkend="ini.log-errors"><parameter>log_errors</parameter></link>
è abilitata. Questo registrerà tutti gli errori nel file o nel syslog
definito da
<link linkend="ini.error-log"><parameter>error_log</parameter></link>. Questo
può essere estremamente utile in un ambiente di produzione, poiché è possibile registrare gli errori
che si verificano e poi generare report basati su questi errori.
</para>
</sect2>
<sect2 xml:id="language.errors.basics.user">
<title>Gestori di errori personalizzati</title>
<para>
Se la gestione degli errori predefinita di PHP è inadeguata, è possibile gestire anche molti
tipi di errore con un gestore di errori personalizzato installandolo con
<function>set_error_handler</function>. Anche se alcuni tipi di errore non possono essere
gestiti in questo modo, quelli che lo permettono possono essere gestiti nel modo
più appropriato per lo script: ad esempio, è possibile mostrare una pagina di errore
personalizzata all'utente e poi segnalare in modo più diretto rispetto a un log, come
l'invio di un'e-mail.
</para>
</sect2>
</sect1>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->