Contributions are ready for review

From: 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>'&lt;? echo "Ciao!"; &gt;'</literal>. + E' comunque possibile lasciare il codice PHP (per tornare ad esempio in HTML): + <literal>'echo "In PHP mode!"; ?&gt;In HTML mode!&lt;? 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; + + &note.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> + &note.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">&lt;?php phpinfo</font><font color="#007700">(); </font><font color="#0000BB">?&gt;</font> +</font> +</code> +]]> + </screen> + <para> + L'esempio sopra stamperà (in PHP 5): + </para> + <screen> +<![CDATA[ +<code><span style="color: #000000"> +<span style="color: #0000BB">&lt;?php phpinfo</span><span style="color: #007700">(); </span><span style="color: #0000BB">?&gt;</span> +</span> +</code> +]]> + </screen> + </example> + </para> + </refsect1> + + <refsect1 role="notes"> + &reftitle.notes; + &note.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 &lt; 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.

« previous php.doc.it (#1982) next »