Contributions are ready for review
| From: | doc-it at lists dot php dot net | Date: | Mon, 20 Jun 2016 12:00:04 +0000 |
| Subject: | Contributions are ready for review | ||
| Groups: | php.doc.it | ||
| Request: | Send a blank email to doc-it+get-1982@lists.php.net to get a copy of this message | ||
Hello PHP IT Documentation team,
There are contributions within the online editor queue for this language.
Please review, then commit or delete these patches.
Patches for review :
-----------------------
New file: it/reference/misc/functions/eval.xml
By: Federico Reghenzani on 2014-03-08 22:36:50
===================================================================
--- it/reference/misc/functions/eval.xml
+++ it/reference/misc/functions/eval.xml
@@ -0,0 +1,153 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- $Revision: $ -->
+<!-- EN-Revision: 321375 Maintainer: Federico Reghenzani Status: ready -->
+<!-- Reviewed: no -->
+
+<refentry xml:id="function.eval" xmlns="http://docbook.org/ns/docbook">
+ <refnamediv>
+ <refname>eval</refname>
+ <refpurpose>Esegue una stringa come codice PHP</refpurpose>
+ </refnamediv>
+
+ <refsect1 role="description">
+ &reftitle.description;
+ <methodsynopsis>
+ <type>mixed</type><methodname>eval</methodname>
+
<methodparam><type>string</type><parameter>code</parameter></methodparam>
+ </methodsynopsis>
+ <para>
+ Esegue la data stringa <parameter>code</parameter> come codcie PHP.
+ </para>
+ <caution>
+ <para>
+ <function>eval</function> è un costrutto del linguaggio <emphasis>molto
pericoloso</emphasis>
+ perché permette l'esecuzione di codice PHP arbitrario. <emphasis>Il suo uso è
pertanto
+ sconsigliato.</emphasis> Se si è certi che non esistono altre soluzioni al posto di
usare
+ <function>eval</function>, fare particolare attenzione a <emphasis>non
inserire codice fornito
+ dall'utente</emphasis> senza averlo preventivamente validato.
+ </para>
+ </caution>
+ </refsect1>
+
+ <refsect1 role="parameters">
+ &reftitle.parameters;
+ <para>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>code</parameter></term>
+ <listitem>
+ <para>
+ Codice PHP valido da eseguire.
+ </para>
+ <para>
+ Il codice non deve essere incluso nei <link
linkend="language.basic-syntax.phpmode">tag
+ di apertura e chisura</link> di PHP. Ad esempio <literal>'echo
"Ciao!";'</literal>
+ è corretto invece di <literal>'<? echo "Ciao!";
>'</literal>.
+ E' comunque possibile lasciare il codice PHP (per tornare ad esempio in HTML):
+ <literal>'echo "In PHP mode!"; ?>In HTML mode!<? echo
"Back in PHP mode!";'</literal>.
+ </para>
+ <para>
+ Oltre a questo, valgono tutte le regole del codice PHP, incluso l'inserimento al
termine
+ di ogni istruzione del punto e virgola.
+ <literal>'echo "Ciao!"'</literal> causerà un parse error,
mentre
+ <literal>'echo "Ciao!";'</literal> funziona.
+ </para>
+ <para>
+ Un'istruzione <literal>return</literal> causa immediatamente la
terminazione del codice
+ in corso di esecuzione dalla <function>eval</function>.
+ </para>
+ <para>
+ L'ambito di esecuzione è ristretto a dove <function>eval</function> viene
chiamata, quindi
+ qualsiasi variabile definita o modificata al suo interno rimarrà visibile dopo la sua
+ terminazione.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ </refsect1>
+
+ <refsect1 role="returnvalues">
+ &reftitle.returnvalues;
+ <para>
+ <function>eval</function> ritorna &null; a meno che
+ <literal>return</literal> è chiamata nel codice da valutare, in tal caso
+ il valore passato a <literal>return</literal> viene ritornato. Se avviene
+ un parse error, <function>eval</function> ritorna
+ &false; e l'esecuzione del codice seguente continua normalmente. Non
+ è possibile catturare un parse error in <function>eval</function>
+ usando <function>set_error_handler</function>.
+ </para>
+ </refsect1>
+
+ <refsect1 role="examples">
+ &reftitle.examples;
+ <para>
+ <example>
+ <title><function>eval</function> Esempio</title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+$string = 'cup';
+$name = 'coffee';
+$str = 'This is a $string with my $name in it.';
+echo $str. "n";
+eval("$str = "$str";");
+echo $str. "n";
+?>
+]]>
+ </programlisting>
+ &example.outputs;
+ <screen>
+<![CDATA[
+This is a $string with my $name in it.
+This is a cup with my coffee in it.
+]]>
+ </screen>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1 role="notes">
+ &reftitle.notes;
+
+ ¬e.language-construct;
+
+ &tip.ob-capture;
+ <note>
+ <para>
+ In caso di fatal error nel codce valutato, l'intero script termina.
+ </para>
+ </note>
+ </refsect1>
+
+ <refsect1 role="seealso">
+ &reftitle.seealso;
+ <para>
+ <simplelist>
+ <member><function>call_user_func</function></member>
+ </simplelist>
+ </para>
+ </refsect1>
+</refentry>
+
+<!-- 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
+-->
=> Put this change into your patches : https://edit.php.net/?project=php&action=putIntoMyPatches&idDB=52764
=> Delete this change: https://edit.php.net/?project=php&action=deleteThisChange&idDB=52764
------------------------------------------------------------------
New file: it/reference/misc/functions/die.xml
By: Federico Reghenzani on 2014-03-08 22:37:53
===================================================================
--- it/reference/misc/functions/die.xml
+++ it/reference/misc/functions/die.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- $Revision: $ -->
+<!-- EN-Revision: 325214 Maintainer: Federico Reghenzani Status: ready -->
+<!-- Reviewed: no -->
+
+<refentry xml:id="function.die" xmlns="http://docbook.org/ns/docbook">
+ <refnamediv>
+ <refname>die</refname>
+ <refpurpose>Equivale a <literal>exit</literal></refpurpose>
+ </refnamediv>
+
+ <refsect1 role="description">
+ &reftitle.description;
+ <para>
+ Questo costrutto è equivalente a <function>exit</function>.
+ </para>
+ </refsect1>
+
+</refentry>
+
+<!-- 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
+-->
=> Put this change into your patches : https://edit.php.net/?project=php&action=putIntoMyPatches&idDB=52765
=> Delete this change: https://edit.php.net/?project=php&action=deleteThisChange&idDB=52765
------------------------------------------------------------------
New file: it/reference/misc/functions/defined.xml
By: Federico Reghenzani on 2014-03-11 03:25:07
===================================================================
--- it/reference/misc/functions/defined.xml
+++ it/reference/misc/functions/defined.xml
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- $Revision: $ -->
+<!-- EN-Revision: 297028 Maintainer: Federico Reghenzani Status: ready -->
+<!-- Reviewed: no -->
+
+<refentry xml:id="function.defined" xmlns="http://docbook.org/ns/docbook">
+ <refnamediv>
+ <refname>defined</refname>
+ <refpurpose>Verifica se dato nome di una costante, essa esiste</refpurpose>
+ </refnamediv>
+
+ <refsect1 role="description">
+ &reftitle.description;
+ <methodsynopsis>
+ <type>bool</type><methodname>defined</methodname>
+
<methodparam><type>string</type><parameter>name</parameter></methodparam>
+ </methodsynopsis>
+ <para>
+ Verifica se la data costante esiste ed è definita.
+ </para>
+ <note>
+ <para>
+ Se vuoi verificare che una funzione esista usa
<function>function_exists</function>.
+ Se vuoi verificare invece che una variabile esista, usa <function>isset</function>
+ infatti <function>defined</function> si applica solo a <link
+ linkend="language.constants">constants</link>.
+ </para>
+ </note>
+ </refsect1>
+
+ <refsect1 role="parameters">
+ &reftitle.parameters;
+ <para>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>name</parameter></term>
+ <listitem>
+ <para>
+ Il nome della costante.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ </refsect1>
+
+ <refsect1 role="returnvalues">
+ &reftitle.returnvalues;
+ <para>
+ Ritorna &true; se il nome della costante specificato da
<parameter>name</parameter>
+ è stata definita, &false; altrimenti.
+ </para>
+ </refsect1>
+
+ <refsect1 role="examples">
+ &reftitle.examples;
+ <para>
+ <example>
+ <title>Controllo Costanti</title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+/* Notare l'uso degli apici. Questo esempio controlla se la stringa
+ * 'TEST' e' il nome di una costante esistente TEST */
+if (defined('TEST')) {
+ echo TEST;
+}
+?>
+]]>
+ </programlisting>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1 role="seealso">
+ &reftitle.seealso;
+ <para>
+ <simplelist>
+ <member><function>define</function></member>
+ <member><function>constant</function></member>
+ <member><function>get_defined_constants</function></member>
+ <member><function>function_exists</function></member>
+ <member><link
linkend="language.constants">Costanti</link></member>
+ </simplelist>
+ </para>
+ </refsect1>
+
+</refentry>
+
+<!-- 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
+-->
=> Put this change into your patches : https://edit.php.net/?project=php&action=putIntoMyPatches&idDB=52766
=> Delete this change: https://edit.php.net/?project=php&action=deleteThisChange&idDB=52766
------------------------------------------------------------------
New file: it/reference/misc/functions/define.xml
By: Federico Reghenzani on 2014-03-11 03:33:23
===================================================================
--- it/reference/misc/functions/define.xml
+++ it/reference/misc/functions/define.xml
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- $Revision: $ -->
+<!-- EN-Revision: 297028 Maintainer: Federico Reghenzani Status: ready -->
+<!-- Reviewed: no -->
+
+<refentry xml:id="function.define" xmlns="http://docbook.org/ns/docbook">
+ <refnamediv>
+ <refname>define</refname>
+ <refpurpose>Definisce una costante</refpurpose>
+ </refnamediv>
+
+ <refsect1 role="description">
+ &reftitle.description;
+ <methodsynopsis>
+ <type>bool</type><methodname>define</methodname>
+
<methodparam><type>string</type><parameter>name</parameter></methodparam>
+
<methodparam><type>mixed</type><parameter>value</parameter></methodparam>
+ <methodparam
choice="opt"><type>bool</type><parameter>case_insensitive</parameter><initializer>false</initializer></methodparam>
+ </methodsynopsis>
+ <para>
+ Definisce una costante alfanumerica durante l'esecuzione.
+ </para>
+ </refsect1>
+
+ <refsect1 role="parameters">
+ &reftitle.parameters;
+ <para>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>name</parameter></term>
+ <listitem>
+ <para>
+ Il nome della costante.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>value</parameter></term>
+ <listitem>
+ <para>
+ Il valore della costante; solo valori scalari e &null; sono consentiti.
+
+ I valori scalari comprendono <type>integer</type>,
+ <type>float</type>, <type>string</type> o
<type>boolean</type>.
+ E' anche possibile definire costanti di tipo <type>resource</type>
+ tuttavia non è raccomandato e può causare comportamenti imprevedibili.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>case_insensitive</parameter></term>
+ <listitem>
+ <para>
+ Se settato a &true;, la costante viene definita case-insensitive.
+ Il comportamento di default è case-sensitive; per esempio
+ <literal>CONSTANT</literal> e <literal>Constant</literal>
rappresentano
+ valori diversi.
+ </para>
+ <note>
+ <para>
+ Le costanti case-insensitive vengono salvate internamente in minuscolo.
+ </para>
+ </note>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ </refsect1>
+
+ <refsect1 role="returnvalues">
+ &reftitle.returnvalues;
+ <para>
+ &return.success;
+ </para>
+ </refsect1>
+
+ <refsect1 role="examples">
+ &reftitle.examples;
+ <para>
+ <example>
+ <title>Definire costanti</title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+define("CONSTANT", "Ciao Mondo!");
+echo CONSTANT; // output "Ciao Mondo!"
+echo Constant; // output "Ciao Mondo!" e genera un notice.
+
+define("GREETING", "Ciao Mondo!", true);
+echo GREETING; // output "Ciao Mondo!"
+echo Greeting; // output "Ciao Mondo!"
+
+?>
+]]>
+ </programlisting>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1 role="seealso">
+ &reftitle.seealso;
+ <para>
+ <simplelist>
+ <member><function>defined</function></member>
+ <member><function>constant</function></member>
+ <member>La sezione <link
linkend="language.constants">Costanti</link></member>
+ </simplelist>
+ </para>
+ </refsect1>
+
+</refentry>
+
+<!-- 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
+-->
=> Put this change into your patches : https://edit.php.net/?project=php&action=putIntoMyPatches&idDB=52816
=> Delete this change: https://edit.php.net/?project=php&action=deleteThisChange&idDB=52816
------------------------------------------------------------------
New file: it/reference/misc/functions/usleep.xml
By: Federico Reghenzani on 2014-03-11 03:38:55
===================================================================
--- it/reference/misc/functions/usleep.xml
+++ it/reference/misc/functions/usleep.xml
@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- $Revision: $ -->
+<!-- EN-Revision: 297028 Maintainer: Federico Reghenzani Status: ready -->
+<!-- Reviewed: no -->
+
+<refentry xml:id="function.usleep" xmlns="http://docbook.org/ns/docbook">
+ <refnamediv>
+ <refname>usleep</refname>
+ <refpurpose>Delay execution in microseconds</refpurpose>
+ </refnamediv>
+
+ <refsect1 role="description">
+ &reftitle.description;
+ <methodsynopsis>
+ <type>void</type><methodname>usleep</methodname>
+
<methodparam><type>int</type><parameter>micro_seconds</parameter></methodparam>
+ </methodsynopsis>
+ <para>
+ Mette in pausa l'esecuzione del programma per il numero indicato di micro-secondi.
+ </para>
+ </refsect1>
+
+ <refsect1 role="parameters">
+ &reftitle.parameters;
+ <para>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>micro_seconds</parameter></term>
+ <listitem>
+ <para>
+ Tempo di pausa in micro-secondi. Un micro-secondo è un milionesimo di secondo.
+ second.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ </refsect1>
+
+ <refsect1 role="returnvalues">
+ &reftitle.returnvalues;
+ <para>
+ &return.void;
+ </para>
+ </refsect1>
+
+ <refsect1 role="changelog">
+ &reftitle.changelog;
+ <para>
+ <informaltable>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>&Version;</entry>
+ <entry>&Description;</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>5.0.0</entry>
+ <entry>
+ Questa funzione ora funziona anche sui sistemi windows.
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+ </refsect1>
+
+ <refsect1 role="examples">
+ &reftitle.examples;
+ <para>
+ <example>
+ <title>Esempio <function>usleep</function></title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+
+// Current time
+echo date('h:i:s') . "n";
+
+// wait for 2 seconds
+usleep(2000000);
+
+// back!
+echo date('h:i:s') . "n";
+
+?>
+]]>
+ </programlisting>
+ &example.outputs;
+ <screen>
+<![CDATA[
+11:13:28
+11:13:30
+]]>
+ </screen>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1 role="seealso">
+ &reftitle.seealso;
+ <para>
+ <simplelist>
+ <member><function>sleep</function></member>
+ <member><function>time_nanosleep</function></member>
+ <member><function>time_sleep_until</function></member>
+ <member><function>set_time_limit</function></member>
+ </simplelist>
+ </para>
+ </refsect1>
+
+</refentry>
+
+<!-- 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
+-->
=> Put this change into your patches : https://edit.php.net/?project=php&action=putIntoMyPatches&idDB=52818
=> Delete this change: https://edit.php.net/?project=php&action=deleteThisChange&idDB=52818
------------------------------------------------------------------
New file: it/reference/misc/functions/show-source.xml
By: Federico Reghenzani on 2014-03-11 03:39:11
===================================================================
--- it/reference/misc/functions/show-source.xml
+++ it/reference/misc/functions/show-source.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- $Revision: $ -->
+<!-- EN-Revision: 288721 Maintainer: Federico Reghenzani Status: ready -->
+<!-- Reviewed: no -->
+
+<refentry xml:id="function.show-source" xmlns="http://docbook.org/ns/docbook">
+ <refnamediv>
+ <refname>show_source</refname>
+ <refpurpose>&Alias; <function>highlight_file</function></refpurpose>
+ </refnamediv>
+
+ <refsect1 role="description">
+ &reftitle.description;
+ <simpara>
+ &info.function.alias;
+ <function>highlight_file</function>.
+ </simpara>
+ </refsect1>
+
+</refentry>
+
+<!-- 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
+-->
=> Put this change into your patches : https://edit.php.net/?project=php&action=putIntoMyPatches&idDB=52819
=> Delete this change: https://edit.php.net/?project=php&action=deleteThisChange&idDB=52819
------------------------------------------------------------------
New file: it/reference/misc/functions/highlight-file.xml
By: Federico Reghenzani on 2014-03-11 03:44:52
===================================================================
--- it/reference/misc/functions/highlight-file.xml
+++ it/reference/misc/functions/highlight-file.xml
@@ -0,0 +1,144 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- $Revision: $ -->
+<!-- EN-Revision: 330680 Maintainer: Federico Reghenzani Status: ready -->
+<!-- Reviewed: no -->
+
+<refentry xml:id="function.highlight-file" xmlns="http://docbook.org/ns/docbook">
+ <refnamediv>
+ <refname>highlight_file</refname>
+ <refpurpose>Evidenziatore di sintassi per file.</refpurpose>
+ </refnamediv>
+
+ <refsect1 role="description">
+ &reftitle.description;
+ <methodsynopsis>
+ <type>mixed</type><methodname>highlight_file</methodname>
+
<methodparam><type>string</type><parameter>filename</parameter></methodparam>
+ <methodparam
choice="opt"><type>bool</type><parameter>return</parameter><initializer>false</initializer></methodparam>
+ </methodsynopsis>
+ <para>
+ Stampa o ritorna la sintassi evidenziata del codice contenuto nel file
+ di nome <parameter>filename</parameter> usando i colori predefiniti
+ nel syntax highlighter per PHP.
+ </para>
+ <para>
+ Molti server sono configurati per evidenziare i file automaticamente
+ con l'estensione <emphasis>phps</emphasis>. Per esempio,
+ <filename>example.phps</filename> mostrerà la sintassi evidenziata
+ del file. Per abilitarlo aggiungi queste righe all'&httpd.conf; (su webserver Apache):
+ </para>
+ <screen>
+<![CDATA[
+AddType application/x-httpd-php-source .phps
+]]>
+ </screen>
+ </refsect1>
+
+ <refsect1 role="parameters">
+ &reftitle.parameters;
+ <para>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>filename</parameter></term>
+ <listitem>
+ <para>
+ Percorso del file PHP che deve essere evidenziato.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>return</parameter></term>
+ <listitem>
+ <para>
+ Se settata a &true; la funzione ritornerà il codice evidenziato anziché stamparlo.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ </refsect1>
+
+ <refsect1 role="returnvalues">
+ &reftitle.returnvalues;
+ <para>
+ Se <parameter>return</parameter> è &true;, ritorna il codice evidenziato,
altrimenti
+ &true; in caso di successo o &false; in caso di fallimento.
+ </para>
+ </refsect1>
+
+ <refsect1 role="changelog">
+ &reftitle.changelog;
+ <para>
+ <informaltable>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>&Version;</entry>
+ <entry>&Description;</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>4.2.1</entry>
+ <entry>
+ Questa funzione dipende ora da <link
+ linkend="ini.safe-mode">safe_mode</link> e <link
+ linkend="ini.open-basedir">open_basedir</link>.
+ </entry>
+ </row>
+ <row>
+ <entry>4.2.0</entry>
+ <entry>
+ Il parametro <parameter>return</parameter> è stato aggiunto.
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+ </refsect1>
+
+ <refsect1 role="notes">
+ &reftitle.notes;
+ <caution>
+ <para>
+ Prestare attenzione quando si usa <function>highlight_file</function>
+ a non rivelare nessun dato sensibile come password o altri tipi di informazioni
+ che possano causare problemi di sicurezza.
+ </para>
+ </caution>
+ ¬e.uses-ob;
+ </refsect1>
+
+ <refsect1 role="seealso">
+ &reftitle.seealso;
+ <para>
+ <simplelist>
+ <member><function>highlight_string</function></member>
+ <member><link linkend="ini.syntax-highlighting">Evidenziare direttive
INI</link></member>
+ </simplelist>
+ </para>
+ </refsect1>
+
+</refentry>
+
+<!-- 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
+-->
=> Put this change into your patches : https://edit.php.net/?project=php&action=putIntoMyPatches&idDB=52820
=> Delete this change: https://edit.php.net/?project=php&action=deleteThisChange&idDB=52820
------------------------------------------------------------------
New file: it/reference/misc/functions/highlight-string.xml
By: Federico Reghenzani on 2014-03-11 03:48:41
===================================================================
--- it/reference/misc/functions/highlight-string.xml
+++ it/reference/misc/functions/highlight-string.xml
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- $Revision: $ -->
+<!-- EN-Revision: 332597 Maintainer: Federico Reghenzani Status: ready -->
+<!-- Reviewed: no -->
+
+<refentry xml:id="function.highlight-string" xmlns="http://docbook.org/ns/docbook">
+ <refnamediv>
+ <refname>highlight_string</refname>
+ <refpurpose>Evidenziatore di sintassi per stringhe</refpurpose>
+ </refnamediv>
+
+ <refsect1 role="description">
+ &reftitle.description;
+ <methodsynopsis>
+ <type>mixed</type><methodname>highlight_string</methodname>
+
<methodparam><type>string</type><parameter>str</parameter></methodparam>
+ <methodparam
choice="opt"><type>bool</type><parameter>return</parameter><initializer>false</initializer></methodparam>
+ </methodsynopsis>
+ <simpara>
+ Stampa o ritorna la sintassi evidenziata del codice contenuto nella stringa
+ <parameter>str</parameter> usando i colori predefiniti nel syntax highlighter per
PHP.
+ </simpara>
+ </refsect1>
+
+ <refsect1 role="parameters">
+ &reftitle.parameters;
+ <para>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>str</parameter></term>
+ <listitem>
+ <para>
+ Il codice PHP che deve essere evidenziato. Questo deve includere il tag di apertura.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>return</parameter></term>
+ <listitem>
+ <para>
+ Se settata a &true; la funzione ritornerà il codice evidenziato anziché stamparlo.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ </refsect1>
+
+ <refsect1 role="returnvalues">
+ &reftitle.returnvalues;
+ <para>
+ Se <parameter>return</parameter> è &true;, ritorna il codice evidenziato,
altrimenti
+ &true; in caso di successo o &false; in caso di fallimento.
+ </para>
+ </refsect1>
+
+ <refsect1 role="changelog">
+ &reftitle.changelog;
+ <para>
+ <informaltable>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>&Version;</entry>
+ <entry>&Description;</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>4.2.0</entry>
+ <entry>
+ Il parametro <parameter>return</parameter> è stato aggiunto.
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+ </refsect1>
+
+ <refsect1 role="examples">
+ &reftitle.examples;
+ <para>
+ <example>
+ <title>Esempio di <function>highlight_string</function></title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+highlight_string('<?php phpinfo(); ?>');
+?>
+]]>
+ </programlisting>
+ <para>
+ L'esempio sopra stamperà (in PHP 4):
+ </para>
+ <screen>
+<![CDATA[
+<code><font color="#000000">
+<font color="#0000BB"><?php phpinfo</font><font
color="#007700">(); </font><font
color="#0000BB">?></font>
+</font>
+</code>
+]]>
+ </screen>
+ <para>
+ L'esempio sopra stamperà (in PHP 5):
+ </para>
+ <screen>
+<![CDATA[
+<code><span style="color: #000000">
+<span style="color: #0000BB"><?php phpinfo</span><span
style="color: #007700">(); </span><span style="color:
#0000BB">?></span>
+</span>
+</code>
+]]>
+ </screen>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1 role="notes">
+ &reftitle.notes;
+ ¬e.uses-ob;
+ <para>
+ Il markup HTML può essere soggetto a cambiamenti.
+ </para>
+ </refsect1>
+
+ <refsect1 role="seealso">
+ &reftitle.seealso;
+ <para>
+ <simplelist>
+ <member><function>highlight_file</function></member>
+ <member><link linkend="ini.syntax-highlighting">Evidenziare direttive
INI</link></member>
+ </simplelist>
+ </para>
+ </refsect1>
+
+</refentry>
+
+<!-- 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
+-->
=> Put this change into your patches : https://edit.php.net/?project=php&action=putIntoMyPatches&idDB=52821
=> Delete this change: https://edit.php.net/?project=php&action=deleteThisChange&idDB=52821
------------------------------------------------------------------
New file: it/reference/misc/functions/halt-compiler.xml
By: Federico Reghenzani on 2014-03-11 03:54:17
===================================================================
--- it/reference/misc/functions/halt-compiler.xml
+++ it/reference/misc/functions/halt-compiler.xml
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- $Revision: $ -->
+<!-- EN-Revision: 297028 Maintainer: Federico Reghenzani Status: ready -->
+<!-- Reviewed: no -->
+
+<refentry xml:id="function.halt-compiler" xmlns="http://docbook.org/ns/docbook">
+ <refnamediv>
+ <refname>__halt_compiler</refname>
+ <refpurpose>
+ Blocca l'esecuzione del compilatore.
+ </refpurpose>
+ </refnamediv>
+ <refsect1 role="description">
+ &reftitle.description;
+ <methodsynopsis>
+ <type>void</type><methodname>__halt_compiler</methodname>
+ <void/>
+ </methodsynopsis>
+ <para>
+ Blocca l'esecuzione del compilatore. Può essere utile per inserire dati
+ negli script PHP.
+ </para>
+ <para>
+ La posizione in byte iniziale dei dati può essere determinata dalla costante
+ <constant>__COMPILER_HALT_OFFSET__</constant> che viene definita solo se è invocata
+ la funzione <function>__halt_compiler</function> nel file.
+ </para>
+ </refsect1>
+
+ <refsect1 role="returnvalues">
+ &reftitle.returnvalues;
+ <para>
+ &return.void;
+ </para>
+ </refsect1>
+
+ <refsect1 role="examples">
+ &reftitle.examples;
+ <para>
+ <example>
+ <title>Esempio <function>__halt_compiler</function></title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+
+// open this file
+$fp = fopen(__FILE__, 'r');
+
+// seek file pointer to data
+fseek($fp, __COMPILER_HALT_OFFSET__);
+
+// and output it
+var_dump(stream_get_contents($fp));
+
+// the end of the script execution
+__halt_compiler(); the installation data (eg. tar, gz, PHP, etc.)
+]]>
+ </programlisting>
+ </example>
+ </para>
+ </refsect1>
+
+ <refsect1 role="notes">
+ &reftitle.notes;
+ <note>
+ <para>
+ <function>__halt_compiler</function> può essere usata solo dallo scope principale.
+ </para>
+ </note>
+ </refsect1>
+
+</refentry>
+
+<!-- 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
+-->
=> Put this change into your patches : https://edit.php.net/?project=php&action=putIntoMyPatches&idDB=52822
=> Delete this change: https://edit.php.net/?project=php&action=deleteThisChange&idDB=52822
------------------------------------------------------------------
New file: it/appendices/migration51.xml
By: anonymous on 2015-12-08 08:06:55
===================================================================
--- it/appendices/migration51.xml
+++ it/appendices/migration51.xml
@@ -0,0 +1,896 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- $Revision: $ -->
+<!-- EN-Revision: 334587 Maintainer: anonymous #66179 Status: ready
email:www.antimoscientifico@gmail.com -->
+<!-- Reviewed: no -->
+
+<appendix xml:id="migration51" xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink">
+ <title>Migrating from PHP 5.0.x to PHP 5.1.x</title>
+ <para>
+ &manual.migration.seealso;
+ <link linkend="migration5">5.0.x</link>,
+ <link linkend="migration52">5.2.x</link>,
+ <link linkend="migration53">5.3.x</link>,
+ <link linkend="migration54">5.4.x</link> and
+ <link linkend="migration55">5.5.x</link>.
+ </para>
+
+ <section xml:id="migration51.changes">
+ <title>Key PHP 5.1.x features</title>
+ <para>
+ Some of the key features of PHP 5.1.x include:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Una riscrittura completa del codice di gestione della data, con supporto migliorato del fuso
orario.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Miglioramento delle prestazioni paragonato a PHP 5.0.X.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ L' estensione PDO è ora abilitata per impostazione predefinita.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Oltre 30 nuove funzioni in varie estensioni e funzionalità built-in.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Oltre 400 bug fixati.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section xml:id="migration51.references">
+ <title>Cambiamenti nella gestione dei riferimenti</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <link linkend="migration51.references-overview">Panoramica</link>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <link linkend="migration51.references-fails">Il codice che funzionava in PHP
+ 4.3.x, ora non più</link>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <link linkend="migration51.references-error">Il codice che funzionava in PHP
+ 4.3.x, ora genera un errore</link>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <link linkend="migration51.references-works">Il codice che non partiva in PHP
+ 4.3.x, ora funziona</link>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <link linkend="migration51.references-didnotwork">Il codice che doveva
funzionare
+ in PHP 5.0.x</link>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <link linkend="migration51.references-warnings">Messaggi d'avviso
+ che andavano e venivano</link>
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ <section xml:id="migration51.references-overview">
+ <title>Panoramica</title>
+ <para>
+ Dal punto di vista di chi scrive script PHP, Il cambiamento più importante
+ rispetto al codice obsoleto è nel modo in cui vengono gestiti
+ i riferimenti in tutte le versioni di PHP dopo il rilascio di PHP 4.4.0.
+ </para>
+ <para>
+ Fino a PHP 4.3, è stato possibile inviare, assegnare o restituire variabili
+ per riferimento che in realtà dovrebbe essere restituito per valore, come una costante,
+ un valore temporaneo (ad esempio il risultato di un'espressione),
+ o il risultato di una funzione che era stato a sua volta ritornato per valore, come in questo
caso:
+ </para>
+ <informalexample>
+ <programlisting role="php">
+<![CDATA[
+<?php
+$foo = "123";
+
+function return_value() {
+ global $foo;
+ return $foo;
+}
+
+$bar = &return_value();
+?>
+]]>
+ </programlisting>
+ </informalexample>
+ <para>
+ Anche se il codice di solito funziona come previsto sotto PHP 4.3,
+ nel caso generale il risultato è indefinito. Il Zend Engine non potrebbe agire
+ correttamente su questi valori come riferimenti. Questo bug potrebbe e hanno portato
+ a diversi problemi di corruzione della memoria difficili da riprodurre,
+ in particolare quando il codice di base era di grandi dimensioni.
+ </para>
+ <para>
+ In PHP 4.4.0, PHP 5.0.4 e tutte le versioni di PHP successivi,
+ il motore è stato fissato a 'sapere' quando l'operazione di riferimento
+ viene utilizzata su un valore che non deve essere referenziato.
+ Il valore reale viene ora utilizzato in tali casi,
+ e un avvertimento viene emesso. L'avvertimento assume la forma di un
+ <constant>E_NOTICE</constant> in PHP 4.4.0 o versione superiore , and
+ <constant>E_STRICT</constant> in PHP 5.0.4 o versione superiore.
+ </para>
+ <para>
+ Il codice che potrebbe portare ad una corruzione della memoria
+ non può più farlo.Tuttavia, alcuni script obsoleti potrebbero
+ funzionare in modo diverso come risultato.
+ </para>
+ </section>
+
+ <section xml:id="migration51.references-fails">
+ <title>Il codice che funzionava in PHP 4.3, ora non più</title>
+ <informalexample>
+ <programlisting role="php">
+<![CDATA[
+<?php
+function func(&$arraykey) {
+ return $arraykey; // function returns by value!
+}
+
+$array = array('a', 'b', 'c');
+foreach (array_keys($array) as $key) {
+ $y = &func($array[$key]);
+ $z[] =& $y;
+}
+
+var_dump($z);
+?>
+<]]>
+ </programlisting>
+ <para>
+ L' esecuzione dello script precedente sotto qualsiasi versione di PHP
+ che precede la correzione di riferimento produrrebbe questo output:
+ </para>
+ <screen>
+<![CDATA[
+array(3) {
+ [0]=>
+ &string(1) "a"
+ [1]=>
+ &string(1) "b"
+ [2]=>
+ &string(1) "c"
+}
+]]>
+ </screen>
+ <para>
+ dopo la correzione di riferimento , lo stesso codice riporterebbe come output:
+ </para>
+ <screen>
+<![CDATA[
+array(3) {
+ [0]=>
+ &string(1) "c"
+ [1]=>
+ &string(1) "c"
+ [2]=>
+ &string(1) "c"
+}
+]]>
+ </screen>
+ </informalexample>
+ <para>
+ Questo perchèa seguito delle modifiche , <literal>func()</literal>
+ assegna per valore. Il valore di <varname>$y</varname> è riassegnato,
+ e riferimento-vincolante è preservato da <varname>$z</varname>.
+ Prima della correzione, il valore è stato assegnato per riferimento, portando <varname>
$ y </varname>
+ per essere ri-tenuto su ogni assegnazione. Il tentativo di legare ad un
+ valore temporaneo di riferimento è stata la causa della corruzione della memoria.
+ </para>
+ <para>
+ Tale codice può essere fatto funzionare in modo identico
+ in entrambe le versioni PHP prima della correzione e dopo la correzione.
+ La signature di <literal> func () </literal> può essere modificato per restituire
per riferimento,
+ o l'assegnazione di riferimento può essere rimosso dal risultato di <literal> func
() </literal>.
+ </para>
+ <informalexample>
+ <programlisting role="php">
+<![CDATA[
+<?php
+function func() {
+ return 'function return';
+}
+
+$x = 'original value';
+$y =& $x;
+$y = &func();
+echo $x;
+?>
+]]>
+ </programlisting>
+ </informalexample>
+ <para>
+ In PHP 4.3 <varname> $ x </varname> sarebbe 'il valore originale',
+ mentre dopo i cambiamenti che sarebbe stato 'il ritorno della funzione' -
+ ricordate che dove la funzione non restituisce per riferimento,
+ l'assegnazione di riferimento viene convertito in una regolare assegnazione.
+ Ancora una volta, questo può essere portato a una base comune,
+ sia forzando <literal> func ()</literal> per tornare per riferimento o eliminando
l'assegnazione per riferimento).
+ </para>
+ </section>
+
+ <section xml:id="migration51.references-error">
+ <title>Il codice che funzionava in PHP 4.3.x, ora genera un errore</title>
+ <informalexample>
+ <programlisting role="php">
+<![CDATA[
+<?php
+class Foo {
+
+ function getThis() {
+ return $this;
+ }
+
+ function destroyThis() {
+ $baz =& $this->getThis();
+ }
+}
+
+$bar = new Foo();
+$bar->destroyThis();
+var_dump($bar);
+?>
+]]>
+ </programlisting>
+ </informalexample>
+ <para>
+ In PHP 5.0.3, <varname>$bar</varname> valutata a
<constant>NULL</constant>
+ invece di restituire un oggetto. Questo è successo perchè
+ <literal>getThis()</literal> restituisce per valore,ma il valore qui viene
assegnato per riferimento.
+ Anche se ora funziona nel modo previsto, questo è in realtà un codice invalido che lanciare
un
+ <constant> E_NOTICE </constant> sotto PHP 4.4 o un <constant> E_STRICT
</constant> sotto PHP 5.0.4 e successivi.
+ </para>
+ </section>
+
+ <section xml:id="migration51.references-works">
+ <title>il codice che non funzionava in PHP 4.3.x, ora funziona</title>
+ <informalexample>
+ <programlisting role="php">
+<![CDATA[
+<?php
+function &f() {
+ $x = "foo";
+ var_dump($x);
+ print "$xn";
+ return($a);
+}
+
+for ($i = 0; $i < 3; $i++) {
+ $h = &f();
+}
+?>
+]]>
+ </programlisting>
+ <para>
+ In PHP 4.3 la terza chiamata a <function>var_dump</function> produce
+ <constant>NULL</constant>, a causa della corruzione della memoria causata
+ dalla restituzione di un valore non inizializzato per riferimento.
+ Questo codice è valido in PHP 5.0.4 e successivo, ma ha gettato errori nelle precedenti
versioni di PHP.
+ </para>
+ </informalexample>
+ <informalexample>
+ <programlisting role="php">
+<![CDATA[
+<?php
+$arr = array('a1' => array('alfa' => 'ok'));
+$arr =& $arr['a1'];
+echo '-'.$arr['alfa']."-n";
+?>
+]]>
+ </programlisting>
+ <para>
+ Fino PHP 5.0.5, non è stato possibile assegnare un array per riferimento in questo modo.
+ E ora invece è possibile.
+ </para>
+ </informalexample>
+ </section>
+
+ <section xml:id="migration51.references-didnotwork">
+ <title>Code that <literal>should have worked</literal> under PHP
5.0.x</title>
+ <para>
+ Ci sono un paio di casi di bug riportati sotto PHP 5.0 prima delle
+ correzioni sul quale ora 'lavora'. Tuttavia, in entrambi i casi vengono
+ generati degli errori da PHP 5.1.x, perché il codice non è valido, in primo luogo.
+ Ritornando i valori di riferimento utilizzando <literal>self::</literal> ora
lavora in casi generali,
+ ma getta un<constant>E_STRICT</constant> avvertimento,
+ e anche se la vostra situazione può variare durante l'assegnazione
+ con riferimento a un oggetto sovraccaricato, tu continuerai a vedere un
<constant>E_ERROR</constant>
+ quando proverai esso, anche se l'assegnazione stessa sembra funzionare.
+ </para>
+ </section>
+
+ <section xml:id="migration51.references-warnings">
+ <title>Avvertimenti che andavano e venivano</title>
+ <para>
+ Chiamate annidate a funzioni che ritornano con riferimento sono
+ codice valido sia sotto 4.3.x PHP e PHP 5.1.x, ma ha gettato un ingiustificato
+ <constant>E_NOTICE</constant> o <constant>E_STRICT</constant> sotto le
versioni
+ di PHP intermedi.
+ </para>
+ <informalexample>
+ <programlisting role="php">
+<![CDATA[
+<?php
+function & foo() {
+ $var = 'ok';
+ return $var;
+}
+
+function & bar() {
+ return foo();
+}
+
+$a =& bar();
+echo "$an";
+?>
+]]>
+ </programlisting>
+ </informalexample>
+ </section>
+ </section>
+ <section xml:id="migration51.reading">
+ <title>Reading []</title>
+ <informalexample>
+ <programlisting role="php">
+<![CDATA[
+<?php
+class XmlTest {
+
+ function test_ref(&$test) {
+ $test = "ok";
+ }
+
+ function test($test) { }
+
+ function run() {
+ $ar = array();
+ $this->test_ref($ar[]);
+ var_dump($ar);
+ $this->test($ar[]);
+ }
+}
+
+$o = new XmlTest();
+$o->run();
+?>
+]]>
+ </programlisting>
+ </informalexample>
+ <para>
+ Questo porterebbe sempre a un fatale <constant>E_ERROR</constant>,
+ perché [] non può essere utilizzato per la lettura in PHP.
+ Il codice non è valido in PHP 4.4.2 e da PHP 5.0.5 in sù.
+ </para>
+ </section>
+
+ <section xml:id="migration51.integer-parameters">
+ <title>Valori interi nei parametri della funzione</title>
+ <para>
+ Con l'avvento di PHP 5.0.x, un nuovo parametro di parsing API è stato introdotto e
+ viene utilizzato da un gran numero di funzioni PHP . In tutte le versioni di PHP
+ dalla 5.0.x e 5.1.x, la gestione dei valori interi era molto rigida e avrebbe
+ respinto i valori numerici non ben formati quando una funzione PHP
+ aveva previsto un numero intero. Questi controlli sono stati ora
+ ammorbiditi per supportare stringhe numeriche non ben formati,
+ come "123" e "123" e non ci sarano fallimenti come sotto PHP 5.0.x.
+ Tuttavia, per promuovere la sicurezza del codice e la validazione dell'input,
+ le funzioni di PHP non emetteranno un <constant>E_NOTICE</constant> quando tali
stringhe
+ vengono passate come interi.
+ </para>
+ </section>
+
+ <section xml:id="migration51.oop">
+ <title>Cambiamenti di classe e oggetti</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <link
linkend="migration51.oop-functions"><literal>instanceof</literal>,
+ <literal>is_a()</literal>, <literal>is_subclass_of()</literal> e
+ <literal>catch</literal></link>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <link linkend="migration51.oop-methods">Metodi privati astratti</link>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <link linkend="migration51.oop-modifiers">Modificatori di accesso nelle
interfacce</link>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <link linkend="migration51.oop-inheritance">Cambiamenti nelle regole di
ereditarietà</link>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <link linkend="migration51.oop-constants">Costanti della Classe</link>
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ <section xml:id="migration51.oop-functions">
+ <title><literal>instanceof</literal>, <literal>is_a()</literal>,
+ <literal>is_subclass_of()</literal> e
<literal>catch</literal></title>
+ <para>
+ In PHP 5.0, <literal>is_a()</literal> è stata deprecata e sostituita dalla
+ <literal>instanceof</literal> operatore. Ci sono stati alcuni problemi
+ con l'implementazione iniziale di <literal>instanceof</literal>,che si basava
su
+ <literal>__autoload()</literal> per eseguire la ricerca delle classi mancanti.
+ Se la classe non era presente, <literal>instanceof</literal> getterebbe un fatale
+ <constant>E_ERROR</constant> a causa del fallimento di
+ <literal>__autoload()</literal> per scoprire che classe. Lo stesso comportamento si
è
+ verificato in <literal>catch</literal> operatore e il
+ <literal>is_subclass_of()</literal> la funzione, per la stessa ragione.
+ </para>
+ <para>
+ Nessuna di queste funzioni o operatori di chiamata <literal>__autoload()</literal>
+ in PHP 5.1.x, e le <literal>class_exists()</literal> soluzioni usate scritte nel
codice per PHP 5.0.x,
+ pur non problematiche in tutti i modi , non sono più necessari.
+ </para>
+ </section>
+
+ <section xml:id="migration51.oop-methods">
+ <title>Metodi privati astratti</title>
+ <para>
+ Metodi privati astratti sono stati supportati tra PHP 5.0.0 e PHP 5.0.4,
+ ma sono stati poi non riconosciute sulla base del fatto che i comportamenti di
+ <literal>private</literal> e <literal>abstract</literal> si escludono
reciprocamente.
+ </para>
+ </section>
+
+ <section xml:id="migration51.oop-modifiers">
+ <title>Modificatori di accesso nelle interfacce</title>
+ <para>
+ Sotto PHP 5.0, le dichiarazioni di funzioni nelle interfacce sono state trattate esattamente
+ nello stesso modo come le dichiarazioni di funzioni nelle classi. Questo non
+ è stato il caso dall'Ottobre del 2004, a questo punto solo il
<literal>public</literal>
+ modificatore di accesso è stato consentito in dichiarazioni di funzione di interfaccia. Dal
mese di
+ Aprile del 2005 - che precede la release PHP 5.0b1 - il
+ <literal>static</literal> modificatore è stato anche permesso. Tuttavia, i
+ <literal>protected</literal> e <literal>private</literal> modificatori
non
+ generanno un <constant>E_ERROR</constant>,così come
+ <literal>abstract</literal>. Si noti che questo cambiamento non dovrebbe
interessare
+ il vostro codice esistente, come nessuno di questi modificatori
+ ha senso nel contesto delle interfacce comunque.
+ </para>
+ </section>
+
+ <section xml:id="migration51.oop-inheritance">
+ <title>Cambiamenti nelle regole di ereditarietà</title>
+ <para>
+ Sotto PHP 5.0, è stato possibile avere una dichiarazione di funzione in una classe derivata
+ che non corrisponde alla dichiarazione della stessa funzione nella classe base, ad esempio,
+ </para>
+ <informalexample>
+ <para>
+ Questo codice getterà <constant>E_STRICT</constant> errore emesso sotto PHP
5.1.x.
+ </para>
+ <programlisting role="php">
+<![CDATA[
+<?php
+class Base {
+ function &return_by_ref() {
+ $r = 1;
+ return $r;
+ }
+}
+
+class Derived extends Base {
+ function return_by_ref() {
+ return 1;
+ }
+}
+?>
+]]>
+ </programlisting>
+ </informalexample>
+ </section>
+
+ <section xml:id="migration51.oop-constants">
+ <title>Costanti della classe</title>
+ <para>
+ Sotto PHP 5.0.x, il codice seguente era valido:
+ </para>
+ <informalexample>
+ <para>
+ Sotto PHP 5.1.x, la ridefinizione di una costante di classe lancerà un fatale
+ <constant>E_ERROR</constant>.
+ </para>
+ <programlisting role="php">
+<![CDATA[
+<?php
+class test {
+ const foobar = 'foo';
+ const foobar = 'bar';
+}
+
+?>
+]]>
+ </programlisting>
+ </informalexample>
+ </section>
+ </section>
+
+ <section xml:id="migration51.extensions">
+ <title>Estensioni</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <link linkend="migration51.extensions-gone">Estensioni tolte dal core
PHP</link>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <link linkend="migration51.extensions-constants">Costanti di classe in nuove
estensioni PHP 5.1.x</link>
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ <section xml:id="migration51.extensions-gone">
+ <title>Estensioni tolte dal core PHP</title>
+ <para>
+ Una delle prime cose che è molto probabile che si noti quando si scarica il PHP 5.1.x
+ è che molte delle estensioni più vecchie sono scomparsi.
+ Le estensioni che sono ancora mantenute attivamente sono disponibili
+ in PHP Extension Community Library (PECL), all'indirizzo
+ <link xlink:href="&url.pecl;">&url.pecl;</link>.
+ </para>
+ <table>
+ <title>Estensioni rimosse</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Estensione</entry>
+ <entry>Alternativa/Stato</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>ext/cpdf</entry>
+ <entry><link linkend="ref.pdf">pecl/pdflib</link></entry>
+ </row>
+ <row>
+ <entry><link linkend="ref.dbx">ext/dbx</link></entry>
+ <entry>pecl/dbx</entry>
+ </row>
+ <row>
+ <entry><link linkend="ref.dio">ext/dio</link></entry>
+ <entry>pecl/dio</entry>
+ </row>
+ <row>
+ <entry><link linkend="ref.fam">ext/fam</link></entry>
+ <entry>Non attivamente mantenuta</entry>
+ </row>
+ <row>
+ <entry><link
linkend="ref.ingres">ext/ingres_ii</link></entry>
+ <entry>pecl/ingres</entry>
+ </row>
+ <row>
+ <entry>ext/ircg</entry>
+ <entry>Non attivamente mantenuta</entry>
+ </row>
+ <row>
+ <entry><link linkend="ref.mcve">ext/mcve</link></entry>
+ <entry>pecl/mcve</entry>
+ </row>
+ <row>
+ <entry><link
linkend="ref.mnogosearch">ext/mnogosearch</link></entry>
+ <entry>Non attivamente mantenuta</entry>
+ </row>
+ <row>
+ <entry>ext/oracle</entry>
+ <entry>
+ <link linkend="ref.oci8">ext/oci8</link> or
+ <link linkend="ref.pdo-oci">ext/pdo_oci</link>
+ </entry>
+ </row>
+ <row>
+ <entry>ext/ovrimos</entry>
+ <entry>Non attivamente mantenuta</entry>
+ </row>
+ <row>
+ <entry>ext/pfpro</entry>
+ <entry>Non attivamente mantenuta</entry>
+ </row>
+ <row>
+ <entry>ext/w32api</entry>
+ <entry><link
xlink:href="&url.pecl.package;ffi">pecl/ffi</link></entry>
+ </row>
+ <row>
+ <entry><link linkend="ref.nis">ext/yp</link></entry>
+ <entry>Non attivamente mantenuta</entry>
+ </row>
+ <row>
+ <entry>ext/activescript</entry>
+ <entry>
+ <link
xlink:href="&url.pecl.package;activescript">pecl/activescript</link>
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <para>
+ I moduli in PECL che non sono mantenuti attivamente (ovvero non sono state supportate da tempo,
+ non hanno mantenitori attivi che lavorano su di loro attualmente,
+ e non hanno alcun pacchetto release PECL), sono ancora disponibili
+ in SVN al <link
xlink:href="&url.php.svn;pecl">&url.php.svn;pecl</link>.
+ Tuttavia, i moduli PHP inediti sono per loro natura non supportati,
+ e la vostra situazione potrebbe essere diversa quando si tenta di installare o usarli.
+ </para>
+ </section>
+
+ <section xml:id="migration51.extensions-constants">
+ <title>Costanti di classe in nuove estensioni PHP 5.1.x</title>
+ <para>
+ Lo Zend Engine 2.1 API consente agli sviluppatori di estensioni
+ di dichiarare le costanti di classe nelle estensioni orientate agli oggetti.
+ Nuove estensioni scritte per PHP 5.1.x, tra cui
+ <link linkend="ref.spl">SPL</link>,
+ <link linkend="intro.pdo">PDO</link>,
+ <link linkend="book.xmlreader">XMLReader</link> e
+ <link linkend="ref.datetime">date</link>, hanno le loro costanti nel
formato
+ <constant>PDO::CLASS_CONSTANT</constant> piuttosto che nel formato C
+ <constant>PDO_CLASS_CONSTANT</constant> al fine di ridurre al minimo
l'inquinamento
+ del namespace globale in PHP.
+ </para>
+ </section>
+ </section>
+
+ <section xml:id="migration51.datetime">
+ <title>Data/ora supporto</title>
+ <para>
+ Data/ora il supporto è stato completamente riscitto in PHP 5.1.x, e non utilizza più le
impostazioni
+ di sistema per 'conoscere' il fuso orario in funzione.Utilizzerà invece,
+ nel seguente ordine:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Il set di fuso orario utilizzando la
<function>date_default_timezone_set</function>
+ funzione (se del caso)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ La variabile di ambiente TZ (Se non è vuota).
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ "magical" ipotesi (Se il sistema operativo supporta esso)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Se nessuna delle opzioni di cui sopra ha esito positivo, UTC
+ </para>
+ </listitem>
+ </itemizedlist>
+ <informalexample>
+ <para>
+ Per garantire la precisione (e per evitare un <constant>E_STRICT</constant>
avvertimento),
+ è necessario definire il fuso orario nel vostro <filename>php.ini</filename>
+ utilizzando il seguente formato:
+ </para>
+ <para>
+ date.timezone = Europe/London
+ </para>
+ </informalexample>
+ <para>
+ I fusi orari supportati sono elencati, in questo formato, in
+ <link linkend="timezones">timezones appendix</link>.
+ </para>
+ <para>
+ si noti inoltre che <function>strtotime</function> ora restituisce &false; in
caso di
+ fallimento, invece di -1.
+ </para>
+ </section>
+
+ <section xml:id="migration51.databases">
+ <title>Cambiamenti in supporto database</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <link linkend="migration51.databases-pdo">PDO panoramica</link>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <link linkend="migration51.databases-mysql">Cambiamenti in MySQL
supporto</link>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <link linkend="migration51.databases-sqlite">Cambiamenti in SQLite
support</link>
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ <section xml:id="migration51.databases-pdo">
+ <title>PDO panoramica</title>
+ <para>
+ <link linkend="intro.pdo">PHP Data Objects (PDO)</link> sono stati
+ introdotti come estensione PECL sotto PHP 5.0, e sono diventati
+ parte della distribuzione di PHP di base in PHP 5.1.x.
+ L'estensione PDO fornisce un'interfaccia coerente per l'accesso al database,
+ ed è usato insieme a driver PDO specifici del database.Ogni driver può anche avere
+ funzioni specifiche del database proprio, ma le funzionalità di base
+ di accesso ai dati, come l'emissione di query e il recupero dei dati
+ è coperta dalle funzioni DOP, utilizzando il driver denominato in
+ <function>PDO::__construct</function>.
+ </para>
+ <para>
+ Si noti che l'estensione PDO, ed i suoi driver, sono destinati
+ ad essere costruiti come estensioni condivise. Ciò consentirà aggiornamenti
+ del driver semplici da PECL, senza costringere a ricostruire tutto di PHP.
+ </para>
+ <para>
+ Al punto di rilascio della release di PHP 5.1.x, PDO è più
+ che pronto per il test diffuso e potrebbe essere adottata in molte situazioni.
+ Tuttavia, è importante capire che PDO ed i suoi drivers sono relativamente giovani
+ e può mancare alcune caratteristiche specifiche del database;
+ valutare PDO con attenzione prima di usarlo in nuovi progetti.
+ </para>
+ <para>
+ Il codice obsoleto in genere fà affidamento sulle estensioni database preesistenti,
+ che sono ancora mantenute.
+ </para>
+ </section>
+
+ <section xml:id="migration51.databases-mysql">
+ <title>Cambiamenti in MySQL supporto</title>
+ <para>
+ In PHP 4, MySQL 3 supporto è stato costruito in esso. Con il rilascio di PHP 5.0 c'erano
+ due estensioni MySQL, denominate 'mysql' e 'mysqli', che sono stati
+ progettati per supportare MySQL < 4.1 e MySQL 4.1 in sù, rispettivamente.
+ Con l'introduzione di PDO, che fornisce un'interfaccia molto veloce per tutte
+ le API database supportati da PHP,Il driver PDO_MYSQL può supportare qualsiasi
+ delle versioni correnti (MySQL 3, 4 o 5) in codice PHP scritto per PDO,
+ a seconda della versione usata dal MySQL library durante la compilazione.Le estensioni
+ più vecchie di MySQL rimangono in vigore per motivi di retrocompatibilità,
+ ma non sono abilitate per impostazione predefinita.
+ </para>
+ </section>
+
+ <section xml:id="migration51.databases-sqlite">
+ <title>Cambiamenti in SQLite supporto</title>
+ <para>
+ In PHP 5.0.x, SQLite 2 il supporto è stato fornito dalle funzioni built-in
+ estensione sqlite, che era anche disponibile come estensione PECL in PHP 4.3 e PHP 4.4.
+ Con l'introduzione di PDO, l'estensione sqlite raddoppia per agire come un
'sqlite2'
+ driver per PDO; è a causa di questo che l'estensione sqlite in PHP 5.1.x
+ ha una dipendenza sulla estensione PDO.
+ </para>
+ <para>
+ PHP 5.1.x. è equipaggiato con un numero di interfacce alternative a sqlite:
+ </para>
+ <para>
+ L'estensione sqlite fornisce il "classico" sqlite API procedurale / OO
+ che potrebbe essere utilizzato nelle versioni precedenti di PHP.
+ Fornisce inoltre il driver PDO 'sqlite2', che consente di accedere l'eredità
SQLite 2 database utilizzando l'API PDO.
+ </para>
+ <para>
+ PDO_SQLITE fornisce il driver 'sqlite' versione 3. SQLite versione 3 è di gran lunga
superiore
+ a SQLite versione 2, ma i formati dei file delle due versioni non sono compatibili.
+ </para>
+ <para>
+ Se il progetto basato SQLite-è già scritto e sta lavorando contro le versioni di PHP
precedenti,
+ quindi è possibile continuare a utilizzare ext / sqlite senza problemi,
+ ma sarà necessario attivare in modo esplicito sia PDO e SQLite.
+ I nuovi progetti dovrebbero utilizzare il (versione 3) driver 'sqlite' PDO e,
+ in quanto questo è più veloce rispetto a SQLite 2, ha migliorato il blocco della concorrenza,
+ e supporta sia le istruzioni preparate e colonne binarie nativamente.
+ </para>
+ <para>
+ È necessario attivare PDO per utilizzare l'estensione SQLite.
+ Se si vuole costruire l'estensione PDO come estensione condivisa,
+ quindi l'estensione SQLite deve essere costruito in comune.
+ Lo stesso vale per qualsiasi estensione che fornisce un driver PDO
+ </para>
+ </section>
+ </section> <!-- end of migration51.databases -->
+
+ <section xml:id="migration51.errorcheck">
+ <title>Checking for <constant>E_STRICT</constant></title>
+ <informalexample>
+ <para>
+ Se si dispone di un solo script per controllare, si può prendere
+ <constant>E_STRICT</constant> per gli errori usando la PHP's commandline lint
+ facility:
+ </para>
+ <programlisting role="shell">
+ php -d error_reporting=4095 -l script_to_check.php
+ </programlisting>
+ <para>
+ Per i progetti più grandi, lo script di shell sotto raggiungerà lo stesso compito:
+ </para>
+ <programlisting role="shell">
+<![CDATA[
+#!/bin/sh
+
+directory=$1
+
+shift
+
+# These extensions are checked
+extensions="php inc"
+
+check_file ()
+{
+ echo -ne "Doing PHP syntax check on $1 ..."
+
+ # Options:
+ ERRORS=
/www/php/bin/php -d display_errors=1 -d html_errors=0 -d error_prepend_string="
" -d error_append_string=" " -d error_reporting=4095 -l $1 | grep -v "No syntax
errors detected"
+
+ if test -z "$ERRORS"; then
+ echo -ne "OK."
+ else
+ echo -e "Errors found!n$ERRORS"
+ fi
+
+ echo
+}
+
+# loop over remaining file args
+for FILE in "$@" ; do
+ for ext in $extensions; do
+ if echo $FILE | grep ".$ext$" > /dev/null; then
+ if test -f $FILE; then
+ check_file "$FILE"
+ fi
+ fi
+ done
+done
+]]>
+ </programlisting>
+ </informalexample>
+ </section>
+
+</appendix>
+
+<!-- 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
+-->
=> Put this change into your patches : https://edit.php.net/?project=php&action=putIntoMyPatches&idDB=65587
=> Delete this change: https://edit.php.net/?project=php&action=deleteThisChange&idDB=65587
------------------------------------------------------------------
New file: it/appendices/userlandnaming.xml
By: anonymous on 2015-12-08 12:54:16
===================================================================
--- it/appendices/userlandnaming.xml
+++ it/appendices/userlandnaming.xml
@@ -0,0 +1,137 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- $Revision: $ -->
+<!-- EN-Revision: 322134 Maintainer: anonymous #66179 Status: ready -->
+<!-- Reviewed: no -->
+
+<appendix xml:id="userlandnaming" xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink">
+ <title>Userland Naming Guide</title>
+ <para>
+ La seguente è una guida per come scegliere meglio i nomi per gli identificatori nel codice
userland PHP.
+ Quando si sceglie i nomi per ogni codice che crea i simboli nel namespace globale,
+ è importante prendere in considerazione le seguenti linee guida per evitare
+ che le future versioni di PHP possono scontrarsi con i vostri simboli.
+ </para>
+
+ <section xml:id="userlandnaming.globalnamespace">
+ <title>Namespace globali</title>
+ <para>
+ Ecco una panoramica di costrutti di codice che vanno nel namespace globale:
+ </para>
+
+ <itemizedlist>
+ <listitem><para>Funzioni</para></listitem>
+ <listitem><para>Classi</para></listitem>
+ <listitem><para>Interfacce</para></listitem>
+ <listitem><para>Costanti (non costanti di classe)</para></listitem>
+ <listitem>
+ <para>le variabili definite al di fuori delle funzioni/metodi</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section xml:id="userlandnaming.rules">
+ <title>Rules</title>
+ <para>
+ L'elenco seguente fornisce una panoramica dei diritti che il progetto PHP riserve per
sé,per la scelta di nomi per nuovi identificatori interni.
+ La guida definitiva è l'officiale
+ <link xlink:href="&url.userlandnaming.cs;">CODING STANDARDS</link>:
+ </para>
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ PHP possiede lo spazio dei nomi di primo livello,
+ ma cerca di trovare nomi descrittivi decenti e evitare scontri evidenti.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ I nomi delle funzioni utilizzano sottolineature tra le parole,
+ mentre i nomi delle classi usano entrambi i <literal>camelCase</literal> e
<literal>PascalCase</literal>
+ regole.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ PHP prefisserà eventuali simboli globali di un'estensione con il nome
dell'estensione.
+ (In passato, ci sono state numerose eccezioni a questa regola.) Esempio:
+ </para>
+
+ <itemizedlist>
+
<listitem><para><function>curl_close</function></para></listitem>
+
<listitem><para><function>mysql_query</function></para></listitem>
+ <listitem><para>PREG_SPLIT_DELIM_CAPTURE</para></listitem>
+ <listitem><para>new DOMDocument()</para></listitem>
+ <listitem>
+ <para>
+ <function>strpos</function> (esempio di un errore passato)
+ </para>
+ </listitem>
+ <listitem><para>new SplFileObject()</para></listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ Iteratori ed eccezioni sono tuttavia semplicemente postfissati con
+ "<literal>Iterator</literal>" e
"<literal>Exception</literal>."
+ Esempio:
+ </para>
+ <itemizedlist>
+
<listitem><para><classname>ArrayIterator</classname></para></listitem>
+
<listitem><para><classname>LogicException</classname></para></listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>
+ PHP riserva tutti i simboli che iniziano con <literal>__</literal>
+ come magical. i consiglia di non creare simboli che iniziano
con<literal>__</literal> in PHP
+ a meno che non si desidera utilizzare la funzionalità documentata magical. Esempio:
+ </para>
+ <itemizedlist>
+ <listitem><para><link
linkend="object.get">__get()</link></para></listitem>
+
<listitem><para><function>__autoload</function></para></listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section xml:id="userlandnaming.tips">
+ <title>Suggerimenti</title>
+ <para>
+ Per scrivere una prova di codice che non invecchia mai , è raccomandato
+ che tu fornisci il prefisso (o suffisso) tutto ciò che và nel namespace globale con un
infrequente
+ 3-4 lettere del prefisso (o suffisso) separati con una sottolineatura. Si raccomanda
+ che al fine di evitare gli scontri dello spazio dei nomi con altro codice userland
+ che i suffissi dei progetti di ricerca (o suffissi) utilizzati in altri
+ progetti e pubblicizzare il loro prefisso scelto (o suffisso) in modo appropriato.
+ Esempio:
+ </para>
+
+ <itemizedlist>
+ <listitem><para>MyPx_someFunc()</para></listitem>
+ <listitem><para>Foo_Date</para></listitem>
+ <listitem><para>$asdf_dbh</para></listitem>
+ </itemizedlist>
+ </section>
+
+</appendix>
+<!-- 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
+-->
=> Put this change into your patches : https://edit.php.net/?project=php&action=putIntoMyPatches&idDB=65590
=> Delete this change: https://edit.php.net/?project=php&action=deleteThisChange&idDB=65590
------------------------------------------------------------------
Modified: it/reference/errorfunc/functions/set-error-handler.xml
By: Federico Reghenzani on 2014-03-07 06:49:55
===================================================================
--- it/reference/errorfunc/functions/set-error-handler.xml
+++ it/reference/errorfunc/functions/set-error-handler.xml
@@ -10,29 +10,209 @@
Configura una funzione di gestione dell'errore definita dall'utente.
</refpurpose>
</refnamediv>
- <refsect1>
- <title>Descrizione</title>
- <methodsynopsis>
- <type>string</type><methodname>set_error_handler</methodname>
-
<methodparam><type>string</type><parameter>error_handler</parameter></methodparam>
- </methodsynopsis>
- <para>
- Configura una funzione utente (<parameter>error_handler</parameter> per
- gestire gli errori in uno script. Restituisce, se esistente, il precedente
- gestore degli errori, o &false; in caso di errore. Questa funzione può
- essere utilizzata per definire un sistema personalizzato di gestione degli
- errori durante l'esecuzione, per esempio in applicazioni dove sia
- necessario svuotare dati o file in caso di un determinato errore
- critico, o quando sia necessario, in determinate condizioni, attivare
- un errore (con <function>trigger_error</function>)
- </para>
- <para>
- La funzione utente richiede 2 parametri: il codice errore e una stringa
- descrittiva dell'errore. Da PHP 4.0.2, è possibile opzionalmente fornire
- altri 3 parametri aggiuntivi: il nome del file, il numero di riga e il
- contesto dove è avvenuto l'errore (un array che punto alla tabella
- dei simboli attiva nel punto in cui è avvenuto l'errore).
+ <refsect1 role="description">
+ &reftitle.description;
+ <methodsynopsis>
+ <type>mixed</type><methodname>set_error_handler</methodname>
+
<methodparam><type>callable</type><parameter>error_handler</parameter></methodparam>
+ <methodparam
choice="opt"><type>int</type><parameter>error_types</parameter><initializer>E_ALL
| E_STRICT</initializer></methodparam>
+ </methodsynopsis>
+ <para>
+ Configura una funzione utente (<parameter>error_handler</parameter>) per
+ gestire gli errori in uno script.
+ </para>
+ <para>
+ Questa funzione può essere utilizzata per definire un sistema
+ personalizzato di gestione degli errori durante l'esecuzione, per esempio
+ in applicazioni dove sia necessario svuotare dati o file in caso di un
+ determinato errore critico, o quando sia necessario, in determinate
+ condizioni, attivare un errore (con <function>trigger_error</function>)
+ </para>
+ <para>
+ E' importante ricordare che il gestore degli errori standard di PHP viene
+ completamente saltato. La configurazione di <link
linkend="ini.error-reporting">error_reporting</link>
+ non avrà effetto e il vostro gestore di errore sarà richiamato senza considerarla - in ogni
+ caso sarà possibile leggere il valore corrente di
<function>error_reporting</function>
+ ed agire di conseguenza. E' di particolare rilevanza il fatto che questo
+ valore sarà 0 se la riga che causa l'errore viene precedura dall'
+ <link linkend="language.operators.errorcontrol">operatore di controllo errore
@</link>.
+ </para>
+ <para>
+ Notare anche che è vostra responsabilità definire <function>die</function>
+ se necessario. Se la funzione di gestione dell'errore ritorna, lo script
+ continerà l'esecuzione con la riga seguente a quella che ha causato
+ l'errore.
+ </para>
+ <para>
+ Il seguenti tipi di errori non saranno gestiti dalla funzione definita dall'utente:
+ <constant>E_ERROR</constant>, <constant>E_PARSE</constant>,
+ <constant>E_CORE_ERROR</constant>,
<constant>E_CORE_WARNING</constant>,
+ <constant>E_COMPILE_ERROR</constant>,
+ <constant>E_COMPILE_WARNING</constant>, e buona parte degli
+ <constant>E_STRICT</constant>.
+ </para>
+ <para>
+ Gli errori che occorrono prima che lo script sia in esecuzione (ad esempio
+ durante l'upload di file) la funzione definita dell'utente non può essere
+ chiamata perché non sarebbe ancora stata registrata.
+ </para>
+ </refsect1>
+
+ <refsect1 role="parameters">
+ &reftitle.parameters;
+ <para>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>error_handler</parameter></term>
+ <listitem>
+ <para>
+ Una funzione di callback con la seguente struttura oppure &null; per
+ ripristinare il gestore di default.
+ </para>
+ <para>
+ <methodsynopsis>
+
<type>bool</type><methodname><replaceable>handler</replaceable></methodname>
+
<methodparam><type>int</type><parameter>errno</parameter></methodparam>
+
<methodparam><type>string</type><parameter>errstr</parameter></methodparam>
+ <methodparam
choice="opt"><type>string</type><parameter>errfile</parameter></methodparam>
+ <methodparam
choice="opt"><type>int</type><parameter>errline</parameter></methodparam>
+ <methodparam
choice="opt"><type>array</type><parameter>errcontext</parameter></methodparam>
+ </methodsynopsis>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>errno</parameter></term>
+ <listitem>
+ <simpara>
+ Il primo parametro, <parameter>errno</parameter>, contiene il livello
+ dell'errore come un intero.
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>errstr</parameter></term>
+ <listitem>
+ <simpara>
+ Il secondo parametro, <parameter>errstr</parameter>, contiene il messaggio
+ di errore come stringa.
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>errfile</parameter></term>
+ <listitem>
+ <simpara>
+ Il terzo parametro opzionale, <parameter>errfile</parameter>,
+ contiene il nome del file che ha generato l'errore, come stringa.
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>errline</parameter></term>
+ <listitem>
+ <simpara>
+ Il quarto parametro opzionale, <parameter>errline</parameter>,
+ Contiene il numero di riga relativo al file che ha generato l'errore, come
intero.
+ </simpara>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>errcontext</parameter></term>
+ <listitem>
+ <simpara>
+ Il quinto parametro opzionale, <parameter>errcontext</parameter>,
+ che e' un array che punta alla tabella simboli al punto dove l'errore è
+ stato generato. In altre parole <parameter>errcontext</parameter>
conterrà un vettore di tutte le variabili
+ che esistono e sono visibili dove l'errore è avvenuto.
+ La funzione utente non dovrebbe mai modificare
<parameter>errcontext</parameter>.
+ </simpara>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ <para>
+ Se la funzione ritorna &false; allora viene eseguito il normale gestore degli errori.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>error_types</parameter></term>
+ <listitem>
+ <para>
+ Può essere usato per mascherare alcuni errori, allo stesso modo
+ di <link linkend="ini.error-reporting">error_reporting</link> che
controlla
+ quali errori mostrare. Se non viene specificato
+ <parameter>error_handler</parameter> rispecchierà le impostazioni di <link
+ linkend="ini.error-reporting">error_reporting</link>.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
</para>
+ </refsect1>
+ <refsect1 role="returnvalues">
+ &reftitle.returnvalues;
+ <para>
+ Ritorna una stringa contenente l'eventuale precedente funzione degli errori.
+ Ritorna &null; se <parameter>error_handler</parameter> è &null; o in caso
di errore
+ (come un'invalida funzione di callback). Se il gestore precedente era un metodo di
+ classe, allora il valore ritornato sarà un array con due elementi: nome della classe
+ e nome del metodo.
+ </para>
+ </refsect1>
+
+ <refsect1 role="changelog">
+ &reftitle.changelog;
+ <para>
+ <informaltable>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>&Version;</entry>
+ <entry>&Description;</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>5.5.0</entry>
+ <entry>
+ <parameter>error_handler</parameter> ora accetta &null;.
+ </entry>
+ </row>
+ <row>
+ <entry>5.2.0</entry>
+ <entry>
+ <parameter>error_handler</parameter> deve ritornare &false; per
+ popolare <varname>$php_errormsg</varname>.
+ </entry>
+ </row>
+ <row>
+ <entry>5.0.0</entry>
+ <entry>
+ Il parametro <parameter>error_types</parameter> viene introdotto.
+ </entry>
+ </row>
+ <row>
+ <entry>4.3.0</entry>
+ <entry>
+ Al posto del nome della funzione, un vettore contenente il riferimento
+ all'oggetto e al nome del metodo può essere utilizzato in
+ <parameter>error_handler</parameter>.
+ </entry>
+ </row>
+ <row>
+ <entry>4.0.2</entry>
+ <entry>
+ Sono aggiunti tre parametri opzioni a <parameter>error_handler</parameter>:
+ nome del file, numero di riga e contesto.
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+ </refsect1>
+
+ <refsect1 role="examples">
<para>
L'esempio sottostante mostra la gestione
delle eccezioni interne attivando gli errori e gestendoli tramite
@@ -159,28 +339,22 @@
</programlisting>
</informalexample>
</para>
- <para>
- E' importante ricordare che il gestore degli errori standard di PHP viene
- completamente saltato. La configurazione di <function>error_reporting</function>
non avrà effetto
- e il vostro gestore di errore sarà richiamato senza considerarla - in ogni
- caso sarà possibile leggere il valore corrente di
<function>error_reporting</function>
- ed agire di conseguenza. E' di particolare rilevanza il fatto che questo
- valore sarà 0 se la riga che causa l'errore viene precedura dall'
- <link linkend="language.operators.errorcontrol">operatore di controllo errore
@</link>.
- </para>
- <para>
- Notare anche che è vostra responsabilità definire <function>die</function>
- se necessario. Se la funzione di gestione dell'errore ritorna, lo script
- continerà l'esecuzione con la riga seguente a quella che ha causato
- l'errore.
- </para>
- <para>
- Vedere anche <function>error_reporting</function>,
- <function>restore_error_handler</function>,
- <function>trigger_error</function>, <function>user_error</function>
- </para>
</refsect1>
- </refentry>
+ <refsect1 role="seealso">
+ &reftitle.seealso;
+ <para>
+ <simplelist>
+ <member><classname>ErrorException</classname></member>
+ <member><function>error_reporting</function></member>
+ <member><function>restore_error_handler</function></member>
+ <member><function>trigger_error</function></member>
+ <member><link linkend="errorfunc.constants">error level
constants</link></member>
+ <member>&seealso.callback;</member>
+ </simplelist>
+ </para>
+ </refsect1>
+
+</refentry>
<!-- Keep this comment at the end of the file
Local variables:
=> Put this change into your patches : https://edit.php.net/?project=php&action=putIntoMyPatches&idDB=52756
=> Delete this change: https://edit.php.net/?project=php&action=deleteThisChange&idDB=52756
------------------------------------------------------------------
--
https://edit.php.net/
This email is send automatically by the Php Docbook Online Editor.