Skip to content

Commit 26df6ea

Browse files
committed
Add Italian translation for errors and fibers
1 parent 87512ff commit 26df6ea

File tree

4 files changed

+351
-0
lines changed

4 files changed

+351
-0
lines changed

language/errors.xml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!-- EN-Revision: 7a75b854c8c52226d38397e7e8177e339fdb273f Maintainer: lacatoire Status: ready -->
3+
<chapter xml:id="language.errors" xmlns="http://docbook.org/ns/docbook">
4+
<title>Errori</title>
5+
6+
<sect1 annotations="chunk:false" xml:id="language.errors.intro">
7+
<title>Introduzione</title>
8+
9+
<para>
10+
Purtroppo, per quanto si presti attenzione nella scrittura del codice, gli errori sono una
11+
realtà inevitabile. PHP segnala errori, avvisi e notifiche per molti problemi comuni
12+
di codifica e di runtime, e sapere come rilevare e gestire questi
13+
errori renderà il debug molto più semplice.
14+
</para>
15+
</sect1>
16+
17+
&language.errors.basics;
18+
&language.errors.php7;
19+
</chapter>
20+
21+
<!-- Keep this comment at the end of the file
22+
Local variables:
23+
mode: sgml
24+
sgml-omittag:t
25+
sgml-shorttag:t
26+
sgml-minimize-attributes:nil
27+
sgml-always-quote-attributes:t
28+
sgml-indent-step:1
29+
sgml-indent-data:t
30+
indent-tabs-mode:nil
31+
sgml-parent-document:nil
32+
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
33+
sgml-exposed-tags:nil
34+
sgml-local-catalogs:nil
35+
sgml-local-ecat-files:nil
36+
End:
37+
vim600: syn=xml fen fdm=syntax fdl=2 si
38+
vim: et tw=78 syn=sgml
39+
vi: ts=1 sw=1
40+
-->

language/errors/basics.xml

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

language/errors/php7.xml

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!-- EN-Revision: 4bf789e981af0836c41daa16e57ef86c21497faa Maintainer: lacatoire Status: ready -->
3+
4+
<sect1 xml:id="language.errors.php7" xmlns="http://docbook.org/ns/docbook">
5+
<title>Errori in PHP 7</title>
6+
7+
<para>
8+
PHP 7 cambia il modo in cui la maggior parte degli errori viene segnalata da PHP. Invece di segnalare
9+
gli errori attraverso il meccanismo di segnalazione errori tradizionale utilizzato da PHP 5, la maggior
10+
parte degli errori viene ora segnalata lanciando eccezioni <classname>Error</classname>.
11+
</para>
12+
13+
<para>
14+
Come per le eccezioni normali, queste eccezioni <classname>Error</classname>
15+
risaliranno fino a raggiungere il primo blocco
16+
<link linkend="language.exceptions.catch"><literal>catch</literal></link> corrispondente.
17+
Se non ci sono blocchi corrispondenti, verrà chiamato qualsiasi gestore di eccezioni predefinito
18+
installato con <function>set_exception_handler</function>,
19+
e se non c'è un gestore di eccezioni predefinito, l'eccezione verrà
20+
convertita in un errore fatale e gestita come un errore tradizionale.
21+
</para>
22+
23+
<para>
24+
Poiché la gerarchia <classname>Error</classname> non eredita da
25+
<classname>Exception</classname>, il codice che utilizza blocchi
26+
<code>catch (Exception $e) { ... }</code> per gestire le eccezioni non catturate
27+
in PHP 5 non catturerà questi <classname>Error</classname>.
28+
È necessario un blocco <code>catch (Error $e) { ... }</code>
29+
o un gestore <function>set_exception_handler</function>.
30+
</para>
31+
32+
<sect2 xml:id="language.errors.php7.hierarchy">
33+
<title>Gerarchia di <classname>Error</classname></title>
34+
35+
<itemizedlist>
36+
<listitem>
37+
<simpara><classname>Throwable</classname></simpara>
38+
<itemizedlist>
39+
<listitem>
40+
<simpara><classname>Error</classname></simpara>
41+
<itemizedlist>
42+
<listitem>
43+
<simpara><classname>ArithmeticError</classname></simpara>
44+
<itemizedlist>
45+
<listitem>
46+
<simpara><classname>DivisionByZeroError</classname></simpara>
47+
</listitem>
48+
</itemizedlist>
49+
</listitem>
50+
<listitem>
51+
<simpara><classname>AssertionError</classname></simpara>
52+
</listitem>
53+
<listitem>
54+
<simpara><classname>CompileError</classname></simpara>
55+
<itemizedlist>
56+
<listitem>
57+
<simpara><classname>ParseError</classname></simpara>
58+
</listitem>
59+
</itemizedlist>
60+
</listitem>
61+
<listitem>
62+
<simpara><classname>TypeError</classname></simpara>
63+
<itemizedlist>
64+
<listitem>
65+
<simpara><classname>ArgumentCountError</classname></simpara>
66+
</listitem>
67+
</itemizedlist>
68+
</listitem>
69+
<listitem>
70+
<simpara><classname>ValueError</classname></simpara>
71+
</listitem>
72+
<listitem>
73+
<simpara><classname>UnhandledMatchError</classname></simpara>
74+
</listitem>
75+
<listitem>
76+
<simpara><classname>FiberError</classname></simpara>
77+
</listitem>
78+
<listitem>
79+
<simpara><classname>RequestParseBodyException</classname></simpara>
80+
</listitem>
81+
</itemizedlist>
82+
</listitem>
83+
<listitem>
84+
<simpara><classname>Exception</classname></simpara>
85+
<itemizedlist>
86+
<listitem>
87+
<simpara>...</simpara>
88+
</listitem>
89+
</itemizedlist>
90+
</listitem>
91+
</itemizedlist>
92+
</listitem>
93+
</itemizedlist>
94+
</sect2>
95+
</sect1>
96+
97+
<!-- Keep this comment at the end of the file
98+
Local variables:
99+
mode: sgml
100+
sgml-omittag:t
101+
sgml-shorttag:t
102+
sgml-minimize-attributes:nil
103+
sgml-always-quote-attributes:t
104+
sgml-indent-step:1
105+
sgml-indent-data:t
106+
indent-tabs-mode:nil
107+
sgml-parent-document:nil
108+
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
109+
sgml-exposed-tags:nil
110+
sgml-local-catalogs:nil
111+
sgml-local-ecat-files:nil
112+
End:
113+
vim600: syn=xml fen fdm=syntax fdl=2 si
114+
vim: et tw=78 syn=sgml
115+
vi: ts=1 sw=1
116+
-->

language/fibers.xml

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!-- EN-Revision: 376d3f9c2ef7fcd64d8b8503d552013acefb8b5b Maintainer: lacatoire Status: ready -->
3+
<chapter xml:id="language.fibers" xmlns="http://docbook.org/ns/docbook">
4+
<title>Fiber</title>
5+
6+
<simplesect xml:id="language.fibers.overview">
7+
<title>Panoramica sulle Fiber</title>
8+
<?phpdoc print-version-for="fiber"?>
9+
<para>
10+
Le Fiber rappresentano funzioni interrompibili con stack completo. Le Fiber possono essere sospese da qualsiasi punto nello stack delle chiamate,
11+
mettendo in pausa l'esecuzione all'interno della fiber fino a quando la fiber non viene ripresa in un secondo momento.
12+
</para>
13+
<para>
14+
Le Fiber mettono in pausa l'intero stack di esecuzione, quindi il chiamante diretto della funzione non ha bisogno di cambiare il modo in cui
15+
invoca la funzione.
16+
</para>
17+
<para>
18+
L'esecuzione può essere interrotta in qualsiasi punto dello stack delle chiamate utilizzando <methodname>Fiber::suspend</methodname>
19+
(ovvero, la chiamata a <methodname>Fiber::suspend</methodname> può trovarsi in una funzione profondamente annidata oppure non
20+
esistere affatto).
21+
</para>
22+
<para>
23+
A differenza dei <classname>Generator</classname> senza stack, ogni <classname>Fiber</classname> ha il proprio stack delle chiamate,
24+
consentendo di metterle in pausa all'interno di chiamate di funzione profondamente annidate. Una funzione che dichiara un punto di interruzione
25+
(ovvero, che chiama <methodname>Fiber::suspend</methodname>) non ha bisogno di cambiare il proprio tipo di ritorno, a differenza di una funzione che utilizza
26+
&yield; che deve restituire un'istanza di <classname>Generator</classname>.
27+
</para>
28+
<para>
29+
Le Fiber possono essere sospese in qualsiasi chiamata di funzione, incluse quelle chiamate dall'interno della VM PHP, come le funzioni
30+
fornite a <function>array_map</function> o i metodi chiamati da &foreach; su un
31+
oggetto <classname>Iterator</classname>.
32+
</para>
33+
<para>
34+
Una volta sospesa, l'esecuzione della fiber può essere ripresa con qualsiasi valore utilizzando <methodname>Fiber::resume</methodname>
35+
o lanciando un'eccezione nella fiber utilizzando <methodname>Fiber::throw</methodname>. Il valore viene restituito
36+
(o l'eccezione viene lanciata) da <methodname>Fiber::suspend</methodname>.
37+
</para>
38+
<note>
39+
<simpara>
40+
Prima di PHP 8.4.0, il cambio di fiber durante l'esecuzione di un
41+
<link linkend="language.oop5.decon.destructor">distruttore</link> di oggetto non era
42+
consentito.
43+
</simpara>
44+
</note>
45+
46+
<example xml:id="language.fiber.example.basic"><!-- {{{ -->
47+
<title>Utilizzo di base</title>
48+
<programlisting role="php">
49+
<![CDATA[
50+
<?php
51+
$fiber = new Fiber(function (): void {
52+
$value = Fiber::suspend('fiber');
53+
echo "Value used to resume fiber: ", $value, PHP_EOL;
54+
});
55+
56+
$value = $fiber->start();
57+
58+
echo "Value from fiber suspending: ", $value, PHP_EOL;
59+
60+
$fiber->resume('test');
61+
?>
62+
]]>
63+
</programlisting>
64+
&example.outputs;
65+
<screen>
66+
<![CDATA[
67+
Value from fiber suspending: fiber
68+
Value used to resume fiber: test
69+
]]>
70+
</screen>
71+
</example><!-- }}} -->
72+
73+
</simplesect>
74+
75+
</chapter>
76+
77+
<!-- Keep this comment at the end of the file
78+
Local variables:
79+
mode: sgml
80+
sgml-omittag:t
81+
sgml-shorttag:t
82+
sgml-minimize-attributes:nil
83+
sgml-always-quote-attributes:t
84+
sgml-indent-step:1
85+
sgml-indent-data:t
86+
indent-tabs-mode:nil
87+
sgml-parent-document:nil
88+
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
89+
sgml-exposed-tags:nil
90+
sgml-local-catalogs:nil
91+
sgml-local-ecat-files:nil
92+
End:
93+
vim600: syn=xml fen fdm=syntax fdl=2 si
94+
vim: et tw=78 syn=sgml
95+
vi: ts=1 sw=1
96+
-->

0 commit comments

Comments
 (0)