cvs: phpdoc /ar/pear about.xml pear.xml
| From: | Salah Faya | Date: | Sun, 18 Nov 2001 14:30:58 +0000 |
| Subject: | cvs: phpdoc /ar/pear about.xml pear.xml | ||
| Groups: | php.doc | ||
| Request: | Send a blank email to phpdoc+get-969338979@lists.php.net to get a copy of this message | ||
visualmind Sun Nov 18 09:30:58 2001 EDT
Added files:
/phpdoc/ar/pear about.xml pear.xml
Log:
Translated to Arabic
Index: phpdoc/ar/pear/about.xml +++ phpdoc/ar/pear/about.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <chapter id="pear.about"> <title>Íæá PEAR</title> <simpara> PEAR ÊÚæÏ Åáì Malin Bakken, æáÏÊ Ýí 1999-11-21 (Ãæá ÔÝÑÉ ßÊÈÊ ÈÎÕæÕ PEAR ßÇäÊ ÞÈá ÓÇÚÊíä ãä ãæáÏåÇ). </simpara> <sect1 id="pear-whatis"> <title>ãÇ åí PEAR?</title> <simpara> PEAR åí ãÎÒä ÔÝÑÉ ÎÇÕ ÈÊæÓÚÇÊ æÊØÈíÞÇÊ Èí ÅÊÔ Èí ßãßÊÈÉ ÔÝÑÉ ãÓÊæÍÇÉ ÈæÇÓØÉ TeX's CTAN æ Perl's CPAN. </simpara> <para> ÇáÛÑÖ ãä PEAR åæ: <itemizedlist> <listitem> <simpara> ÊæÝíÑ æÓíáÉ ãÊãÇÓßÉ áãÄáÝí ÇáÔÝÑÇÊ ÇáÈÑãÌíÉ ÈÍíË ÊÓãÍ ÈãÔÇÑßÉ ÈÑãÌíÇÊåã ãÚ ÇáãØæÑíä ÇáÂÎÑíä </simpara> </listitem> <listitem> <simpara> áÊÚØí ÌãåæÑ ÇáÈí ÅÊÔ Èí ÈäíÉ ÊÍÊíÉ ááÊÔÇÑß ÈÇáÔÛÑÇÊ ÇáÈÑãÌíÉ </simpara> </listitem> <listitem> <simpara> æáÊÍÏíÏ ÇáãÞÇííÓ ÇáÊí ÊÓÇÚÏ ÇáãØæÑíä áßÊÇÈÉ ÈÑãÌíÇÊ ãÑäÉ ÞÇÈáÉ áÅÚÇÏÉ ÇáÇÓÊÎÏÇã </simpara> </listitem> <listitem> <simpara> æáÊæÝíÑ ÇáÃÏæÇÊ áÕíÇäÉ ÇáÈÑãÌíÇÊ æäÔÑåÇ </simpara> </listitem> </itemizedlist> </para> </sect1> </chapter> <!-- 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 sgml-parent-document:nil sgml-default-dtd-file:"../../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 --> Index: phpdoc/ar/pear/pear.xml +++ phpdoc/ar/pear/pear.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <reference id="pear.reference"> <title>Ïáíá PEAR ÇáãÑÌÚí </title> <titleabbrev>PEAR</titleabbrev> <partintro> <simpara> åÐÇ ÇáÝÕá íÍÊæí Úáì æËíÞÉ ãÑÌÚíÉ ÎÇÕÉ ÈãÍÊæíÇÊ PEAR æÇáÊí Êã äÔÑåÇ ãÚ Èí ÅÊÔ Èí. ãä ÇáãÝÊÑÖ Ãä Êßæä ãÕØáÍÇÊ<link linkend="language.oop">objects æ classes</link>ãÃáæÝÉð áÏíß . </simpara> </partintro> <refentry id="class.pear"> <refnamediv> <refname>PEAR</refname> <refpurpose>PEAR base class</refpurpose> </refnamediv> <refsynopsisdiv> <synopsis>require_once "PEAR.php";</synopsis> <synopsis>class <replaceable>classname</replaceable> extends <classname>PEAR</classname> { ... }</synopsis> </refsynopsisdiv> <refsect1> <title>ÇáæÕÝ</title> <simpara> ÇáäæÚ PEAR base class íÒæÏ æÙÇÆÝ ÞíÇÓíÉ ÊÓÊÎÏã Úä ØÑíÞ ãÚÙã ãÕäÝÇÊ PEAR (classes). Ýí ÇáÚÇÏÉ áä ÊÞæã ÈÕäÚ äæÚ PEAR ãÈÇÔÑÉð , Èá ÓæÝ ÊÓÊÎÏãå Úä ØÑíÞ ÇáÊÕäíÝ ÇáËÇäæí/ÇáÝÑÚí (subclassing). </simpara> <para> ÇáãíÒÇÊ ÇáÑÆíÓíÉ : <itemizedlist> <listitem> <simpara>ØáÈ ÇáÅäåÇÁ"destructors"</simpara> </listitem> <listitem> <simpara>ãÚÇáÌÉ ÇáÎØÃ</simpara> </listitem> </itemizedlist> </para> </refsect1> <refsect1 id="pear.destructors"> <title>PEAR "destructors"</title> <simpara> ÅÐÇ ÇÓÊÎÏãÊ<classname>PEAR</classname> Ýí äæÚ ÇÓãå ãËáÇð <replaceable>ClassName</replaceable>, ÊÓÊØíÚ Ãä ÊÚÑÝ ÅÌÑÇÁ Ýíå ÈÇÓã _<replaceable>ClassName</replaceable> (ÇÓã ÇáäæÚ class ÈÇááÅÖÇÝÉ Åáì ÇáÔÑØÉ ÇáÓÝáíÉ '_' ) æÇáÐí ÓæÝ íÓÊÏÚì ÚäÏãÇ íäÊåí ÇáØáÈ. åÐÇ ÇáÅÌÑÇÁ áÇ íÓÊÎÏã ÈÍíË ÊÓÊØíÚ Ãä ÊáÛí "delete" ßÇÆä object æíÊã ÇÓÊÏÚÇÄå, Èá áßí ÊÚíÏ PHP ÇáÊÍßã Ýí åÐÇ ÇáßÇÆä ÚäÏãÇ ÊäÊåí PHP ãä ÇáÊäÝíÐ. áÇÍÙ <link linkend="example.pear.destructors">ÇáãËÇá</link>ÇáÊÇáí</simpara> <para> <warning id="pear.destructors.warning"> <title>åÇã!</title> <para> áßí ÊÚãá åÐå ÇáÅÌÑÇÁÇÊ ÈÔßá ÕÍíÍ, íÌÈ Ãä ÊÈÏà ÊÚÑíÝ ÇáÕäÝ ÇáÐí ÊÞæã ÈÊÚÑíÝå ÈÑãÒ "=& new" ßãÄÔÑ ¡ ãËá :<programlisting role="php">$obj =& new MyClass(); </programlisting> </para> <simpara> ÇÐÇ ÇÓÊÎÏãÊ "= new" ÝÞØ, ÇáßÇÆä ÇáãÓÌá Ýí ÞæÇÆã ÇáÅäåÇÁ ÇáÎÇÕÉ È PEAR ÓæÝ Êßæä äÓÎÉ ãä åÐÇ ÇáßÇÆä ÃËäÇÁ ÇÓÊÏÚÇÁ ÇáÅÌÑÇÁ , æÓæÝ íÊã ÇÓÊÏÚÇÁåÇ ÃíÖÇð ÈÚÏ ØáÈ ÇáÅäåÇÁ. </simpara> </warning> </para> </refsect1> <refsect1 id="pear.error-handling"> <title>ãÚÇáÌÉ ÃÎØÇÁ - PEAR</title> <simpara> äæÚ PEAR base class íæÝÑ ÃíÖÇð ØÑíÞÉ áÊãÑíÑ ÃäæÇÚ ÎØÃ ÃßËÑ ÊÚÞíÏÇð ãä Þíã ÇáÕæÇÈ æÇáÎØÃtrue/false Çæ ÇáÞíã ÇáÚÏÏíÉ. ãÕØáÍ ÎØÃ PEAR 'PEAR error' íØáÞ Úáì ßÇÆä ÅãÇ Ãä íßæä ßÇÆä <classname>PEAR_Error</classname>, Ãæ ÍÇáÉ ÊæÑË Ýíå ÕÝÇÊ <classname>PEAR_Error</classname>. </simpara> <simpara> æÇÍÏ ãä ãÚÇíÑ ÊÕãíã ÃÎØÇÁ PEAR 'PEAR's errors' Ãäå áÇ íÌÈ Ãä íÌÈÑ ÇáãÓÊÎÏã Úáì ÇÓÊÎÏÇã äæÚ ÎÇÕ ãä ÇáãÎÑÌÇÊ, íÌÈ Ãä íßæä ãä Çáããßä ãÚÇáÌÉ ÇáÃÎØÇÁ ÈÏæä Ãí ãÎÑÌÇÊ ÊãÇãÇð ÇÐÇ ßÇä åÐÇ ãÑÛæÈÇð. åÐÇ íÌÚá ãä Çáããßä ãÚÇáÌÉ ÇáÃÎØÇÁ ÈÔßá ÑÇÆÚ, æßÐáß Åä ßÇä äæÚ ÇáãÎÑÌ ÛíÑ äÕ ÝÇÆÞ HTML (Úáì ÓÈíá ÇáãËÇá WML Çæ Ãí ãä ÃäæÇÚ XML). </simpara> <simpara> íãßä Çä íåíà ßÇÆä ÇáÎØÃ 'error object' áíÚãá ÚÏÏÇð ãä ÇáÃÔíÇÁ ÚäÏãÇ íÊã ÅäÔÇÄå, ãËá ØÈÇÚÉ ÑÓÇáÉ ÎØÃ, æÇáÎÑæÌ, Çæ ÇÙåÇÑ ÇáÎØÃ Úä ØÑíÞ ãÍÝÒ PHP <function>trigger_error</function> , ØáÈ ÇáÚæÏÉ æÇáÇÓÊãÑÇÑ, Çæ Ãä áÇ íÚãá ÔíÆÇð. åÐÇ ãÍÏÏ ÈÔßá äãæÐÌí Ýí ÅÌÑÇÁÇÊ <classname>PEAR_Error</classname>, áßä ßá ÇáãÄÔÑÇÊ ÇÎÊíÇÑíÉ, æÊÓÊØíÚ Ãä ÊÚÏ ÇáÇÎÊíÇÑÇÊ ÇáÇÝÊÑÇÖíÉ ááÃÎØÇÁ ÇáãÊæáÏÉ ãä ßá ßÇÆä ãÈäí Úáí äæÚ <classname>PEAR</classname>. áÇÍÙ<link linkend="example.pear.error1">ÃãËáÉ PEAR error</link> áÊÚÑÝ ßíÝ ßíÝ ÊÓÊÎÏã ¡ æßÐáß ãÑÌÚ <classname>PEAR_Error</classname> áãÒíÏ ãä ÇáÊÝÇÕíá.</simpara> </refsect1> <refsect1> <title>ÇáÃãËáÉ</title> <para> ÇáãËÇá ÇáÊÇáí íÔÑÍ ßíÝ ÊÓÊÎÏã PEAR's "poor man's kinda emulated destructors" áÊØÈíÞ äæÚ ÈÓíØ CLASS áÊÍãíá ãÍÊæíÇÊ ãáÝ, æíÌÚáß ÊÖíÝ ÈíÇäÇÊ Åáì ÇáßÇÆä æ ÊÝÑíÛåÇ Åáì ÇáãáÝ Ýí ÇáäåÇíÉ : <example id="example.pear.destructors"> <title>PEAR: emulated destructors</title> <programlisting role="php">require_once "PEAR.php"; class FileContainer extends PEAR { var $file = ''; var $contents = ''; var $modified = 0; function FileContainer($file) { $this->PEAR(); // ÇÓÊÏÚÇÁ ÇáÅÌÑÇÁ ÇáÃÈ $fp = fopen($file, "r"); if (!is_resource($fp)) { return; } while (!empty($data = fread($fp, 2048))) { $this->contents .= $data; } fclose($fp); } function append($str) { $this->contents .= $str; $this->modified++; } // ØÑíÞÉ ÇÓÊÏÚÇÁ ÇáÅÌÑÇÁ // ÈÇÓÊÎÏÇã ÔÑØÉ ÊÍÊíÉ Ýí ÇáÈÏÇíÉ. function _FileContainer() { if ($this->modified) { $fp = fopen($this->file, "w"); if (!is_resource($fp)) { return; } fwrite($fp, $this->contents); fclose($fp); } } } $fileobj =& new FileContainer("testfile"); $fileobj->append("ÊæÖÚ åÐå ÇáÚÈÇÑÉ Ýí ÇáãáÝ Ýí äåÇíÉ ÇáÊäÝíÐ\n"); // ÚäÏãÇ íäÊåí ÇáØáÈ æíÛáÞ ÇáÈÑäÇãÌ // ÇáÅÌÑÇÁ "destructor" íÓÊÏÚì . // æÈÇáÊÇáí ÊÓÌá ÇáÈíÇäÇÊ Ýí ÇáãáÝ ÝÚáíÇð </programlisting> </example> <note> <simpara> ÅÌÑÇÁÇÊ PEAR "destructors" ÊÓÊÎÏã (<function>register_shutdown_function</function>), æáÇ ÊÓÊØíÚ Ãä ÊÍÕá Úáì Ãí ãÎÑÌÇÊ ãä åÐå ÚäÏãÇ ÊÓÊÎÏã PHP ãäÝÐÉ Úáì ãÒæÏ æíÈ. áÐáß ÝÅä Çí ÔíÁ íØÈÚ Ýí åÐÇ ÇáÅÌÑÇÁ íÝÞÏ ÅáÇ ÚäÏãÇ ÊÓÊÎÏã PHP ßÃãÑ ÎØí "command-line mode" . </simpara> <simpara> ßÐáß ¡ áÇÍÙ ÃíÖÇð<link linkend="pear.destructors.warning">ÊäÈíå!</link> Íæá ßíÝíÉ ÈÏÁ ÊÚÑíÝ ÇáßÇÆä ÇÐÇ ÃÑÏÊ ÇÓÊÎÏÇã ÇáÅÌÑÇÁ. </simpara> </note> </para> <simpara> ÇáÃãËáÉ ÇáÊÇáíÉ ÊÓÊÚÑÖ ØÑÞ ãÎÊáÝÉ ãä ÇÓÊÎÏÇã ÂáíÉ ãÚÇáÌÉ ÇáÎØÃ Úä ØÑíÞ PEAR .</simpara> <para> <example id="example.pear.error1"> <title>PEAR error example (1)</title> <programlisting role="php">function mysockopen($host = "localhost", $port = 8090) { $fp = fsockopen($host, $port, $errno, $errstr); if (!is_resource($fp)) { return new PEAR_Error($errstr, $errno); } return $fp; } $sock = mysockopen(); if (PEAR::isError($sock)) { print "mysockopen error: ".$sock->getMessage()."<BR>\n" } </programlisting> </example> </para> <simpara> åÐÇ ÇáãËÇá íÚÑÖ ØÑíÞÉ ááÏÇáÉ <function>fsockopen</function> áÅÑÓÇá ÑÓÇÆá ÇáÃÎØÇÁ (Åä æÌÏÊ) Úä ØÑíÞ fsockopen ãä ÎáÇá ßÇÆä "PEAR error". áÇÍÙ Ãä <function>PEAR::isError</function> ÇÓÊÎÏãÊ áãÚÑÝÉ ãÇ ÇÐÇ ßÇäÊ ÇáÞíãÉ ÇáäÇÊÌÉ åí ÎØÃ ãä äæÚ PEAR. </simpara> <simpara> ÇÓáæÈ PEAR_Error Ýí åÐÇ ÇáãËÇá åæ ÈÈÓÇØÉ ÅÚÇÏÉ ßÇÆä ÇáÎØÃ ßäÇÊÌ æÊÑß ÇáÈÇÞí ááãÓÊÎÏã (ÇáãÈÑãÌ). åÐåÇ åæ ÇáÇÓáæÈ ÇáÇÝÊÑÇÖí. </simpara> <simpara> Ýí ÇáãËÇá ÇáÊÇáí äÚÑÖ ßíÝ ÊÓÊÎÏã ÇÓÇáíÈ ÇáÎØÃ ÇáÇÝÊÑÇÖíÉ : </simpara> <para> <example id="example.pear.error2"> <title>PEAR error example (2)</title> <programlisting role="php">class TCP_Socket extends PEAR { var $sock; function TCP_Socket() { $this->PEAR(); } function connect($host, $port) { $sock = fsockopen($host, $port, $errno, $errstr); if (!is_resource($sock)) { return $this->raiseError($errstr, $errno); } } } $sock = new TCP_Socket; $sock->setErrorHandling(PEAR_ERROR_DIE); $sock->connect("localhost", 8090); print "ÇáÈÑäÇãÌ áÇÒÇá ÍíÇ!<BR>\n"; </programlisting> </example> </para> <simpara> åäÇ, äÌÚá ÇÓáæÈ ÇáÎØÃ ÇáÇÝÊÑÇÖí ÈÇÓÊÎÏÇã <constant>PEAR_ERROR_DIE</constant>, ÅÐ ÃääÇ áã äÍÏÏ Çí ÇÓáæÈ ÎØÃ Ýí "raiseError" (ÇáãÄÔÑ ÇáËÇáË), íÚÑÝ "raiseError" ÈÇáÞíãÉ ÇáÇÝÊÑÇÖíÉ æíäÊåí ÇÐÇ ÝÔáÊ fsockopen . </simpara> </refsect1> <refsect1> <title>ÇáãÊÛíÑÇÊ ÇáãÓÊÎÏãÉ - ãÊÛíÑÇÊ ÚÇãÉ</title> <para> íÓÊÎÏã ÇáäæÚ PEAR ÈÚÖ ÇáãÊÛíÑÇÊ ÇáÚÇãÉ áÊÍÏíÏ ÇáÇÝÊÑÇÖÇÊ ÇáÚÇãÉ , æÞÇÆãÉ ÇáßÇÆäÇÊ ÇáãÓÊÎÏãÉ Úä ØÑíÞ ÇáÅÌÑÇÁÇÊ "destructors". ßá ÇáãÊÛíÑÇÊ ÇáãÓÊÎÏãÉ ÇáãÑÊÈØÉ ÈäæÚ PEAR áÏíåÇ ÈÇÏÆÉ ÎÇÕÉ ãä äæÚ <literal>_PEAR_</literal>. </para> <para> <variablelist> <varlistentry> <term>$_PEAR_default_error_mode</term> <listitem> <simpara> ÇÐÇ áã íÍÏÏ ÇÓáæÈ ÇÝÊÑÇÖí ááÎØÃ Ýí ßÇÆä, åÐÇ ÇáÇÓáæÈ ÓæÝ íÓÊÎÏã . ßæÇÍÏ ãä <constant>PEAR_ERROR_RETURN</constant>, <constant>PEAR_ERROR_PRINT</constant>, <constant>PEAR_ERROR_TRIGGER</constant>, <constant>PEAR_ERROR_DIE</constant> Ãæ <constant>PEAR_ERROR_CALLBACK</constant>. </simpara> <para> áÇ ÊÍÏÏ ÞíãÉ åÐÇ ÇáãÊÛíÑ ãÈÇÔÑÉ , Þã ÈÇÓÊÏÚÇÁ <function>PEAR::setErrorHandling</function> ßÅÌÑÇÁ ËÇÈÊ ßãÇ Ýí ÇáÊÇáí: <informalexample> <programlisting role="php">PEAR::setErrorHandling(PEAR_ERROR_DIE); </programlisting> </informalexample> </para> </listitem> </varlistentry> <varlistentry> <term>$_PEAR_default_error_options</term> <listitem> <simpara> ÇÐÇ Êã ÇÓÊÎÏÇã ÇáÇÓáæÈ <constant>PEAR_ERROR_TRIGGER</constant>, åÐÇ åæ ãÓÊæì ÇáÎØÃ (æÇÍÏ ãä <constant>E_USER_NOTICE</constant>, <constant>E_USER_WARNING</constant> Ãæ <constant>E_USER_ERROR</constant>). </simpara> <para> áÇ ÊÍÏÏ ÞíãÉ åÐÇ ÇáãÊÛíÑ ãÈÇÔÑÉ , Þã ÈÇÓÊÏÚÇÁ <function>PEAR::setErrorHandling</function> ßÅÌÑÇÁ ËÇÈÊ ßãÇ Ýí ÇáÊÇáí: <informalexample> <programlisting role="php">PEAR::setErrorHandling(PEAR_ERROR_TRIGGER, E_USER_ERROR); </programlisting> </informalexample> </para> </listitem> </varlistentry> <varlistentry> <term>$_PEAR_default_error_callback</term> <listitem> <simpara> ãÄÔÑ <replaceable>options</replaceable> íÓÊÎÏã ÚäÏãÇ íÚáä Úä ÎØÃ æÇÓáæÈ ÇáÎØÃ åæ <constant>PEAR_ERROR_CALLBACK</constant>, ÞíãÉ åÐÇ ÇáãÊÛíÑ ÊÓÊÎÏã ßãÄÔÑ ááÚæÏÉ. åÐÇ íÚäí Ãäß ÊÓÊØíÚ ÊÈÏíá ÇÓáæÈ ÇáÎØÃ ãÄÞÊÇð æÇáÚæÏÉ ÈÏæä ÊÍÏíÏ ÏÇáÉ ÇáÚæÏÉ call back function ãÑÉ ÃÎÑì . ÞíãÉ äÕíÉ ÊãËá ÏÇáÉ, æãÕÝæÝÉ ÐÇÊ ÚäÕÑíä ãÚ ßÇÆä Ýí ÇáãæÞÚ index 0 æÚÈÇÑÉ äÕíÉ Ýí ÇáãæÞÚ index 1 ÊãËá ÅÌÑÇÁ. </simpara> <para> ãÑÉ ÃÎÑì, áÇ ÊÍÏÏ ÞíãÉ åÐÇ ÇáãÊÛíÑ ãÈÇÔÑÉ , Þã ÈÇÓÊÏÚÇÁ <function>PEAR::setErrorHandling</function> ßÅÌÑÇÁ ËÇÈÊ ßãÇ Ýí ÇáÊÇáí: <informalexample> <programlisting role="php">PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, "my_error_handler"); </programlisting> </informalexample> </para> <para> ÝíãÇ íáí ãËÇá áßíÝíÉ ÇáÊÈÏíá æÇáÚæÏÉ ÈÏæä ÊÍÏíÏ ÏÇáÉ ÇáÚæÏÉ ãÑÉ ÃÎÑì: <informalexample> <programlisting role="php">PEAR::setErrorMode(PEAR_ERROR_CALLBACK, "my_function_handler"); do_some_stuff(); PEAR::setErrorMode(PEAR_ERROR_DIE); do_some_critical_stuff(); PEAR::setErrorMode(PEAR_ERROR_CALLBACK); // ÇáÂä äÚæÏ áÇÓÊÎÏÇã // my_function_handler // ãÑÉ ÃÎÑì</programlisting> </informalexample> </para> </listitem> </varlistentry> </variablelist> </para> </refsect1> <refsect1> <title>ÇáÅÌÑÇÁÇÊ</title> <refsect2 id="function.pear.pear"> <title>PEAR::PEAR</title> <funcsynopsis> <funcprototype> <funcdef>PEAR()</funcdef> <void/> </funcprototype> </funcsynopsis> <para> åÐÇ åæ ÇáÅÌÑÇÁ PEAR class constructor. íãßä ÇÓÊÏÚÇÄå ãä Ãí äæÚ "class" ãÚÑÝ ßÇãÊÏÇÏ ãä PEAR class. <example> <title>ãËÇá "PEAR Class Constructor"</title> <programlisting role="php">class MyClass extends PEAR { var $foo, $bar; function MyClass($foo, $bar) { $this->PEAR(); $this->foo = $foo; $this->bar = $bar; } } </programlisting> </example> </para> </refsect2> <refsect2 id="function.pear.-pear"> <title>PEAR::_PEAR</title> <funcsynopsis> <funcprototype> <funcdef>_PEAR()</funcdef> <void/> </funcprototype> </funcsynopsis> <para> åÐÇ ÇáÅÌÑÇÁ íÓÊÏÚì ÎáÇá ØáÈ ÇáÅäåÇÁ (shutdown request). </para> </refsect2> </refsect1> </refentry> <refentry id="class.pear-error"> <refnamediv> <refname>PEAR_Error</refname> <refpurpose>PEAR error mechanism base class</refpurpose> </refnamediv> <refsynopsisdiv> <synopsis>$err = new <classname>PEAR_Error</classname>($msg);</synopsis> </refsynopsisdiv> <refsect1> <title>ÃÓÇáíÈ ÇáÎØÃ Error Modes</title> <para> ßÇÆä ÇáÎØÃ áÏíå ÇÓáæÈ íÍÏÏ ØÑíÞÉ ÇáÚãá ¡ íãßä ÇÎÊíÇÑ ÇÍÏ åÐÇ ÇáËæÇÈÊ: <variablelist id="pear.error-modes"> <varlistentry id="constant.pear-error-return"> <term>PEAR_ERROR_RETURN</term> <listitem> <simpara> ÝÞØ ÃÚÏ ßÇÆä ÇáÎØÃ ßäÇÊÌ, áÇ ÊÝÚá Ãí ÔíÁ ÂÎÑ. </simpara> </listitem> </varlistentry> <varlistentry id="constant.pear-error-print"> <term>PEAR_ERROR_PRINT</term> <listitem> <simpara> ÇØÈÚ ÑÓÇáÉ ÇáÎØÃ Ýí ÇáÅÌÑÇÁ. áÇ íÊã ÅíÞÇÝ ÇáÊäÝíÐ. </simpara> </listitem> </varlistentry> <varlistentry id="constant.pear-error-trigger"> <term>PEAR_ERROR_TRIGGER</term> <listitem> <simpara> ÈÇÓÊÎÏÇã ãÍÝÒ PHP <function>trigger_error</function> åÐå ÇáæÙíÝÉ ÊÙåÑ ÎØÃ ÏÇÎáí ãä ÎáÇá. íÊã ÅíÞÇÝ ÇáÊäÝíÐ ÇÐÇ ÚÑÝÊ ãÚÇáÌ ÇáÎØÃ ÇáÎÇÕ Èß Ãæ ÅÐÇ ÍÏÏÊ ÞíãÉ error severity = E_USER_ERROR. </simpara> </listitem> </varlistentry> <varlistentry id="constant.pear-error-die"> <term>PEAR_ERROR_DIE</term> <listitem> <simpara> ÇØÈÚ ÑÓÇáÉ ÎØÃ æÇÎÑÌ. íÊã ÅíÞÇÝ ÇáÊäÝíÐ ÈÇáÊÃßíÏ . </simpara> </listitem> </varlistentry> <varlistentry id="constant.pear-error-callback"> <term>PEAR_ERROR_CALLBACK</term> <listitem> <simpara> ÇÓÊÎÏã ÏÇáÉ ááÚæÏÉ Çæ ÅÌÑÇÁ áãÚÇáÌÉ ÇáÎØÃ. íÊã ÅíÞÇÝ ÇáÊäÝíÐ. </simpara> </listitem> </varlistentry> </variablelist> </para> </refsect1> <refsect1> <title>ÇáÎÕÇÆÕ</title> <simpara></simpara> </refsect1> <refsect1> <title>ÇáÅÌÑÇÁÇÊ</title> <funcsynopsis> <funcprototype> <funcdef><function>PEAR_Error::PEAR_Error</function></funcdef> <paramdef> <parameter><optional>message</optional></parameter> <parameter><optional>code</optional></parameter> <parameter><optional>mode</optional></parameter> <parameter><optional>options</optional></parameter> <parameter><optional>userinfo</optional></parameter> </paramdef> </funcprototype> </funcsynopsis> <refsect2> <title>ÇáæÕÝ</title> <para> ÅÌÑÇÁ PEAR_Error constructor. ÇáãÄÔÑÇÊ: <variablelist> <varlistentry> <term>message</term> <listitem> <simpara> ÑÓÇáÉ ÎØÃ, ÇáÞíãÉ ÇáÇÝÊÑÇÖíÉ "unknown error" </simpara> </listitem> </varlistentry> <varlistentry> <term>code</term> <listitem> <simpara> ÑÞã ÎØÃ (ÇÎÊíÇÑí) </simpara> </listitem> </varlistentry> <varlistentry> <term>mode</term> <listitem> <simpara> ÇÓáæÈ ÇáÚãá. ÇäÙÑ ÞÓã<link linkend="pear.error-modes"> ÇÓÇáíÈ ÇáÎØÃ error modes</link> ááÊÝÇÕíá. </simpara> </listitem> </varlistentry> <varlistentry> <term>options</term> <listitem> <simpara> ÇÐÇ ßÇä ÇáÇÓáæÈ ÇáãÍÏÏ ÃÚáÇå íÓÊÎÏã ÎíÇÑÇÊ , ÇÓÊÎÏã åÐå ÇáãÄÔÑÇÊ. ÍÇáíÇð ÇáãÍÝÒ "trigger" æ ÇÓáæÈ ÇáÚæÏÉ "callback" åãÇ ÝÞØ ÇáÐÇä íÓÊÎÏãÇä ãÄÔÑ ÇáÎíÇÑÇÊ options. Ýí ÇÓáæÈ ÇáãÍÝÒ, åÐÇ ÇáãÄÔÑ åæ æÇÍÏ ãä <constant>E_USER_NOTICE</constant>, <constant>E_USER_WARNING</constant> Ãæ <constant>E_USER_ERROR</constant>. Ýí ÇÓáæÈ ÇáÚæÏÉ "callback", åÐÇ ÇáãÄÔÑ íÌÈ Ãä íÊÖãä ÅãÇ ÇÓã ÏÇáÉ ÇáÚæÏÉ (äÕíÇð), Çæ ãÕÝæÝÉ ÐÇÊ ÚäÕÑíä (ßÇÆä, äÕ) ÊãËá ÇáßÇÆä æÇáÅÌÑÇÁ ÇáÐí íÊã ÇÓÊÏÚÇÄå Ýí ÇáÚæÏÉ. </simpara> </listitem> </varlistentry> </variablelist> </para> </refsect2> </refsect1> </refentry> </reference> <!-- 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 sgml-parent-document:nil sgml-default-dtd-file:"../../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 -->
Index: phpdoc/ar/pear/about.xml +++ phpdoc/ar/pear/about.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <chapter id="pear.about"> <title>Íæá PEAR</title> <simpara> PEAR ÊÚæÏ Åáì Malin Bakken, æáÏÊ Ýí 1999-11-21 (Ãæá ÔÝÑÉ ßÊÈÊ ÈÎÕæÕ PEAR ßÇäÊ ÞÈá ÓÇÚÊíä ãä ãæáÏåÇ). </simpara> <sect1 id="pear-whatis"> <title>ãÇ åí PEAR?</title> <simpara> PEAR åí ãÎÒä ÔÝÑÉ ÎÇÕ ÈÊæÓÚÇÊ æÊØÈíÞÇÊ Èí ÅÊÔ Èí ßãßÊÈÉ ÔÝÑÉ ãÓÊæÍÇÉ ÈæÇÓØÉ TeX's CTAN æ Perl's CPAN. </simpara> <para> ÇáÛÑÖ ãä PEAR åæ: <itemizedlist> <listitem> <simpara> ÊæÝíÑ æÓíáÉ ãÊãÇÓßÉ áãÄáÝí ÇáÔÝÑÇÊ ÇáÈÑãÌíÉ ÈÍíË ÊÓãÍ ÈãÔÇÑßÉ ÈÑãÌíÇÊåã ãÚ ÇáãØæÑíä ÇáÂÎÑíä </simpara> </listitem> <listitem> <simpara> áÊÚØí ÌãåæÑ ÇáÈí ÅÊÔ Èí ÈäíÉ ÊÍÊíÉ ááÊÔÇÑß ÈÇáÔÛÑÇÊ ÇáÈÑãÌíÉ </simpara> </listitem> <listitem> <simpara> æáÊÍÏíÏ ÇáãÞÇííÓ ÇáÊí ÊÓÇÚÏ ÇáãØæÑíä áßÊÇÈÉ ÈÑãÌíÇÊ ãÑäÉ ÞÇÈáÉ áÅÚÇÏÉ ÇáÇÓÊÎÏÇã </simpara> </listitem> <listitem> <simpara> æáÊæÝíÑ ÇáÃÏæÇÊ áÕíÇäÉ ÇáÈÑãÌíÇÊ æäÔÑåÇ </simpara> </listitem> </itemizedlist> </para> </sect1> </chapter> <!-- 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 sgml-parent-document:nil sgml-default-dtd-file:"../../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 --> Index: phpdoc/ar/pear/pear.xml +++ phpdoc/ar/pear/pear.xml <?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.1 $ --> <reference id="pear.reference"> <title>Ïáíá PEAR ÇáãÑÌÚí </title> <titleabbrev>PEAR</titleabbrev> <partintro> <simpara> åÐÇ ÇáÝÕá íÍÊæí Úáì æËíÞÉ ãÑÌÚíÉ ÎÇÕÉ ÈãÍÊæíÇÊ PEAR æÇáÊí Êã äÔÑåÇ ãÚ Èí ÅÊÔ Èí. ãä ÇáãÝÊÑÖ Ãä Êßæä ãÕØáÍÇÊ<link linkend="language.oop">objects æ classes</link>ãÃáæÝÉð áÏíß . </simpara> </partintro> <refentry id="class.pear"> <refnamediv> <refname>PEAR</refname> <refpurpose>PEAR base class</refpurpose> </refnamediv> <refsynopsisdiv> <synopsis>require_once "PEAR.php";</synopsis> <synopsis>class <replaceable>classname</replaceable> extends <classname>PEAR</classname> { ... }</synopsis> </refsynopsisdiv> <refsect1> <title>ÇáæÕÝ</title> <simpara> ÇáäæÚ PEAR base class íÒæÏ æÙÇÆÝ ÞíÇÓíÉ ÊÓÊÎÏã Úä ØÑíÞ ãÚÙã ãÕäÝÇÊ PEAR (classes). Ýí ÇáÚÇÏÉ áä ÊÞæã ÈÕäÚ äæÚ PEAR ãÈÇÔÑÉð , Èá ÓæÝ ÊÓÊÎÏãå Úä ØÑíÞ ÇáÊÕäíÝ ÇáËÇäæí/ÇáÝÑÚí (subclassing). </simpara> <para> ÇáãíÒÇÊ ÇáÑÆíÓíÉ : <itemizedlist> <listitem> <simpara>ØáÈ ÇáÅäåÇÁ"destructors"</simpara> </listitem> <listitem> <simpara>ãÚÇáÌÉ ÇáÎØÃ</simpara> </listitem> </itemizedlist> </para> </refsect1> <refsect1 id="pear.destructors"> <title>PEAR "destructors"</title> <simpara> ÅÐÇ ÇÓÊÎÏãÊ<classname>PEAR</classname> Ýí äæÚ ÇÓãå ãËáÇð <replaceable>ClassName</replaceable>, ÊÓÊØíÚ Ãä ÊÚÑÝ ÅÌÑÇÁ Ýíå ÈÇÓã _<replaceable>ClassName</replaceable> (ÇÓã ÇáäæÚ class ÈÇááÅÖÇÝÉ Åáì ÇáÔÑØÉ ÇáÓÝáíÉ '_' ) æÇáÐí ÓæÝ íÓÊÏÚì ÚäÏãÇ íäÊåí ÇáØáÈ. åÐÇ ÇáÅÌÑÇÁ áÇ íÓÊÎÏã ÈÍíË ÊÓÊØíÚ Ãä ÊáÛí "delete" ßÇÆä object æíÊã ÇÓÊÏÚÇÄå, Èá áßí ÊÚíÏ PHP ÇáÊÍßã Ýí åÐÇ ÇáßÇÆä ÚäÏãÇ ÊäÊåí PHP ãä ÇáÊäÝíÐ. áÇÍÙ <link linkend="example.pear.destructors">ÇáãËÇá</link>ÇáÊÇáí</simpara> <para> <warning id="pear.destructors.warning"> <title>åÇã!</title> <para> áßí ÊÚãá åÐå ÇáÅÌÑÇÁÇÊ ÈÔßá ÕÍíÍ, íÌÈ Ãä ÊÈÏà ÊÚÑíÝ ÇáÕäÝ ÇáÐí ÊÞæã ÈÊÚÑíÝå ÈÑãÒ "=& new" ßãÄÔÑ ¡ ãËá :<programlisting role="php">$obj =& new MyClass(); </programlisting> </para> <simpara> ÇÐÇ ÇÓÊÎÏãÊ "= new" ÝÞØ, ÇáßÇÆä ÇáãÓÌá Ýí ÞæÇÆã ÇáÅäåÇÁ ÇáÎÇÕÉ È PEAR ÓæÝ Êßæä äÓÎÉ ãä åÐÇ ÇáßÇÆä ÃËäÇÁ ÇÓÊÏÚÇÁ ÇáÅÌÑÇÁ , æÓæÝ íÊã ÇÓÊÏÚÇÁåÇ ÃíÖÇð ÈÚÏ ØáÈ ÇáÅäåÇÁ. </simpara> </warning> </para> </refsect1> <refsect1 id="pear.error-handling"> <title>ãÚÇáÌÉ ÃÎØÇÁ - PEAR</title> <simpara> äæÚ PEAR base class íæÝÑ ÃíÖÇð ØÑíÞÉ áÊãÑíÑ ÃäæÇÚ ÎØÃ ÃßËÑ ÊÚÞíÏÇð ãä Þíã ÇáÕæÇÈ æÇáÎØÃtrue/false Çæ ÇáÞíã ÇáÚÏÏíÉ. ãÕØáÍ ÎØÃ PEAR 'PEAR error' íØáÞ Úáì ßÇÆä ÅãÇ Ãä íßæä ßÇÆä <classname>PEAR_Error</classname>, Ãæ ÍÇáÉ ÊæÑË Ýíå ÕÝÇÊ <classname>PEAR_Error</classname>. </simpara> <simpara> æÇÍÏ ãä ãÚÇíÑ ÊÕãíã ÃÎØÇÁ PEAR 'PEAR's errors' Ãäå áÇ íÌÈ Ãä íÌÈÑ ÇáãÓÊÎÏã Úáì ÇÓÊÎÏÇã äæÚ ÎÇÕ ãä ÇáãÎÑÌÇÊ, íÌÈ Ãä íßæä ãä Çáããßä ãÚÇáÌÉ ÇáÃÎØÇÁ ÈÏæä Ãí ãÎÑÌÇÊ ÊãÇãÇð ÇÐÇ ßÇä åÐÇ ãÑÛæÈÇð. åÐÇ íÌÚá ãä Çáããßä ãÚÇáÌÉ ÇáÃÎØÇÁ ÈÔßá ÑÇÆÚ, æßÐáß Åä ßÇä äæÚ ÇáãÎÑÌ ÛíÑ äÕ ÝÇÆÞ HTML (Úáì ÓÈíá ÇáãËÇá WML Çæ Ãí ãä ÃäæÇÚ XML). </simpara> <simpara> íãßä Çä íåíà ßÇÆä ÇáÎØÃ 'error object' áíÚãá ÚÏÏÇð ãä ÇáÃÔíÇÁ ÚäÏãÇ íÊã ÅäÔÇÄå, ãËá ØÈÇÚÉ ÑÓÇáÉ ÎØÃ, æÇáÎÑæÌ, Çæ ÇÙåÇÑ ÇáÎØÃ Úä ØÑíÞ ãÍÝÒ PHP <function>trigger_error</function> , ØáÈ ÇáÚæÏÉ æÇáÇÓÊãÑÇÑ, Çæ Ãä áÇ íÚãá ÔíÆÇð. åÐÇ ãÍÏÏ ÈÔßá äãæÐÌí Ýí ÅÌÑÇÁÇÊ <classname>PEAR_Error</classname>, áßä ßá ÇáãÄÔÑÇÊ ÇÎÊíÇÑíÉ, æÊÓÊØíÚ Ãä ÊÚÏ ÇáÇÎÊíÇÑÇÊ ÇáÇÝÊÑÇÖíÉ ááÃÎØÇÁ ÇáãÊæáÏÉ ãä ßá ßÇÆä ãÈäí Úáí äæÚ <classname>PEAR</classname>. áÇÍÙ<link linkend="example.pear.error1">ÃãËáÉ PEAR error</link> áÊÚÑÝ ßíÝ ßíÝ ÊÓÊÎÏã ¡ æßÐáß ãÑÌÚ <classname>PEAR_Error</classname> áãÒíÏ ãä ÇáÊÝÇÕíá.</simpara> </refsect1> <refsect1> <title>ÇáÃãËáÉ</title> <para> ÇáãËÇá ÇáÊÇáí íÔÑÍ ßíÝ ÊÓÊÎÏã PEAR's "poor man's kinda emulated destructors" áÊØÈíÞ äæÚ ÈÓíØ CLASS áÊÍãíá ãÍÊæíÇÊ ãáÝ, æíÌÚáß ÊÖíÝ ÈíÇäÇÊ Åáì ÇáßÇÆä æ ÊÝÑíÛåÇ Åáì ÇáãáÝ Ýí ÇáäåÇíÉ : <example id="example.pear.destructors"> <title>PEAR: emulated destructors</title> <programlisting role="php">require_once "PEAR.php"; class FileContainer extends PEAR { var $file = ''; var $contents = ''; var $modified = 0; function FileContainer($file) { $this->PEAR(); // ÇÓÊÏÚÇÁ ÇáÅÌÑÇÁ ÇáÃÈ $fp = fopen($file, "r"); if (!is_resource($fp)) { return; } while (!empty($data = fread($fp, 2048))) { $this->contents .= $data; } fclose($fp); } function append($str) { $this->contents .= $str; $this->modified++; } // ØÑíÞÉ ÇÓÊÏÚÇÁ ÇáÅÌÑÇÁ // ÈÇÓÊÎÏÇã ÔÑØÉ ÊÍÊíÉ Ýí ÇáÈÏÇíÉ. function _FileContainer() { if ($this->modified) { $fp = fopen($this->file, "w"); if (!is_resource($fp)) { return; } fwrite($fp, $this->contents); fclose($fp); } } } $fileobj =& new FileContainer("testfile"); $fileobj->append("ÊæÖÚ åÐå ÇáÚÈÇÑÉ Ýí ÇáãáÝ Ýí äåÇíÉ ÇáÊäÝíÐ\n"); // ÚäÏãÇ íäÊåí ÇáØáÈ æíÛáÞ ÇáÈÑäÇãÌ // ÇáÅÌÑÇÁ "destructor" íÓÊÏÚì . // æÈÇáÊÇáí ÊÓÌá ÇáÈíÇäÇÊ Ýí ÇáãáÝ ÝÚáíÇð </programlisting> </example> <note> <simpara> ÅÌÑÇÁÇÊ PEAR "destructors" ÊÓÊÎÏã (<function>register_shutdown_function</function>), æáÇ ÊÓÊØíÚ Ãä ÊÍÕá Úáì Ãí ãÎÑÌÇÊ ãä åÐå ÚäÏãÇ ÊÓÊÎÏã PHP ãäÝÐÉ Úáì ãÒæÏ æíÈ. áÐáß ÝÅä Çí ÔíÁ íØÈÚ Ýí åÐÇ ÇáÅÌÑÇÁ íÝÞÏ ÅáÇ ÚäÏãÇ ÊÓÊÎÏã PHP ßÃãÑ ÎØí "command-line mode" . </simpara> <simpara> ßÐáß ¡ áÇÍÙ ÃíÖÇð<link linkend="pear.destructors.warning">ÊäÈíå!</link> Íæá ßíÝíÉ ÈÏÁ ÊÚÑíÝ ÇáßÇÆä ÇÐÇ ÃÑÏÊ ÇÓÊÎÏÇã ÇáÅÌÑÇÁ. </simpara> </note> </para> <simpara> ÇáÃãËáÉ ÇáÊÇáíÉ ÊÓÊÚÑÖ ØÑÞ ãÎÊáÝÉ ãä ÇÓÊÎÏÇã ÂáíÉ ãÚÇáÌÉ ÇáÎØÃ Úä ØÑíÞ PEAR .</simpara> <para> <example id="example.pear.error1"> <title>PEAR error example (1)</title> <programlisting role="php">function mysockopen($host = "localhost", $port = 8090) { $fp = fsockopen($host, $port, $errno, $errstr); if (!is_resource($fp)) { return new PEAR_Error($errstr, $errno); } return $fp; } $sock = mysockopen(); if (PEAR::isError($sock)) { print "mysockopen error: ".$sock->getMessage()."<BR>\n" } </programlisting> </example> </para> <simpara> åÐÇ ÇáãËÇá íÚÑÖ ØÑíÞÉ ááÏÇáÉ <function>fsockopen</function> áÅÑÓÇá ÑÓÇÆá ÇáÃÎØÇÁ (Åä æÌÏÊ) Úä ØÑíÞ fsockopen ãä ÎáÇá ßÇÆä "PEAR error". áÇÍÙ Ãä <function>PEAR::isError</function> ÇÓÊÎÏãÊ áãÚÑÝÉ ãÇ ÇÐÇ ßÇäÊ ÇáÞíãÉ ÇáäÇÊÌÉ åí ÎØÃ ãä äæÚ PEAR. </simpara> <simpara> ÇÓáæÈ PEAR_Error Ýí åÐÇ ÇáãËÇá åæ ÈÈÓÇØÉ ÅÚÇÏÉ ßÇÆä ÇáÎØÃ ßäÇÊÌ æÊÑß ÇáÈÇÞí ááãÓÊÎÏã (ÇáãÈÑãÌ). åÐåÇ åæ ÇáÇÓáæÈ ÇáÇÝÊÑÇÖí. </simpara> <simpara> Ýí ÇáãËÇá ÇáÊÇáí äÚÑÖ ßíÝ ÊÓÊÎÏã ÇÓÇáíÈ ÇáÎØÃ ÇáÇÝÊÑÇÖíÉ : </simpara> <para> <example id="example.pear.error2"> <title>PEAR error example (2)</title> <programlisting role="php">class TCP_Socket extends PEAR { var $sock; function TCP_Socket() { $this->PEAR(); } function connect($host, $port) { $sock = fsockopen($host, $port, $errno, $errstr); if (!is_resource($sock)) { return $this->raiseError($errstr, $errno); } } } $sock = new TCP_Socket; $sock->setErrorHandling(PEAR_ERROR_DIE); $sock->connect("localhost", 8090); print "ÇáÈÑäÇãÌ áÇÒÇá ÍíÇ!<BR>\n"; </programlisting> </example> </para> <simpara> åäÇ, äÌÚá ÇÓáæÈ ÇáÎØÃ ÇáÇÝÊÑÇÖí ÈÇÓÊÎÏÇã <constant>PEAR_ERROR_DIE</constant>, ÅÐ ÃääÇ áã äÍÏÏ Çí ÇÓáæÈ ÎØÃ Ýí "raiseError" (ÇáãÄÔÑ ÇáËÇáË), íÚÑÝ "raiseError" ÈÇáÞíãÉ ÇáÇÝÊÑÇÖíÉ æíäÊåí ÇÐÇ ÝÔáÊ fsockopen . </simpara> </refsect1> <refsect1> <title>ÇáãÊÛíÑÇÊ ÇáãÓÊÎÏãÉ - ãÊÛíÑÇÊ ÚÇãÉ</title> <para> íÓÊÎÏã ÇáäæÚ PEAR ÈÚÖ ÇáãÊÛíÑÇÊ ÇáÚÇãÉ áÊÍÏíÏ ÇáÇÝÊÑÇÖÇÊ ÇáÚÇãÉ , æÞÇÆãÉ ÇáßÇÆäÇÊ ÇáãÓÊÎÏãÉ Úä ØÑíÞ ÇáÅÌÑÇÁÇÊ "destructors". ßá ÇáãÊÛíÑÇÊ ÇáãÓÊÎÏãÉ ÇáãÑÊÈØÉ ÈäæÚ PEAR áÏíåÇ ÈÇÏÆÉ ÎÇÕÉ ãä äæÚ <literal>_PEAR_</literal>. </para> <para> <variablelist> <varlistentry> <term>$_PEAR_default_error_mode</term> <listitem> <simpara> ÇÐÇ áã íÍÏÏ ÇÓáæÈ ÇÝÊÑÇÖí ááÎØÃ Ýí ßÇÆä, åÐÇ ÇáÇÓáæÈ ÓæÝ íÓÊÎÏã . ßæÇÍÏ ãä <constant>PEAR_ERROR_RETURN</constant>, <constant>PEAR_ERROR_PRINT</constant>, <constant>PEAR_ERROR_TRIGGER</constant>, <constant>PEAR_ERROR_DIE</constant> Ãæ <constant>PEAR_ERROR_CALLBACK</constant>. </simpara> <para> áÇ ÊÍÏÏ ÞíãÉ åÐÇ ÇáãÊÛíÑ ãÈÇÔÑÉ , Þã ÈÇÓÊÏÚÇÁ <function>PEAR::setErrorHandling</function> ßÅÌÑÇÁ ËÇÈÊ ßãÇ Ýí ÇáÊÇáí: <informalexample> <programlisting role="php">PEAR::setErrorHandling(PEAR_ERROR_DIE); </programlisting> </informalexample> </para> </listitem> </varlistentry> <varlistentry> <term>$_PEAR_default_error_options</term> <listitem> <simpara> ÇÐÇ Êã ÇÓÊÎÏÇã ÇáÇÓáæÈ <constant>PEAR_ERROR_TRIGGER</constant>, åÐÇ åæ ãÓÊæì ÇáÎØÃ (æÇÍÏ ãä <constant>E_USER_NOTICE</constant>, <constant>E_USER_WARNING</constant> Ãæ <constant>E_USER_ERROR</constant>). </simpara> <para> áÇ ÊÍÏÏ ÞíãÉ åÐÇ ÇáãÊÛíÑ ãÈÇÔÑÉ , Þã ÈÇÓÊÏÚÇÁ <function>PEAR::setErrorHandling</function> ßÅÌÑÇÁ ËÇÈÊ ßãÇ Ýí ÇáÊÇáí: <informalexample> <programlisting role="php">PEAR::setErrorHandling(PEAR_ERROR_TRIGGER, E_USER_ERROR); </programlisting> </informalexample> </para> </listitem> </varlistentry> <varlistentry> <term>$_PEAR_default_error_callback</term> <listitem> <simpara> ãÄÔÑ <replaceable>options</replaceable> íÓÊÎÏã ÚäÏãÇ íÚáä Úä ÎØÃ æÇÓáæÈ ÇáÎØÃ åæ <constant>PEAR_ERROR_CALLBACK</constant>, ÞíãÉ åÐÇ ÇáãÊÛíÑ ÊÓÊÎÏã ßãÄÔÑ ááÚæÏÉ. åÐÇ íÚäí Ãäß ÊÓÊØíÚ ÊÈÏíá ÇÓáæÈ ÇáÎØÃ ãÄÞÊÇð æÇáÚæÏÉ ÈÏæä ÊÍÏíÏ ÏÇáÉ ÇáÚæÏÉ call back function ãÑÉ ÃÎÑì . ÞíãÉ äÕíÉ ÊãËá ÏÇáÉ, æãÕÝæÝÉ ÐÇÊ ÚäÕÑíä ãÚ ßÇÆä Ýí ÇáãæÞÚ index 0 æÚÈÇÑÉ äÕíÉ Ýí ÇáãæÞÚ index 1 ÊãËá ÅÌÑÇÁ. </simpara> <para> ãÑÉ ÃÎÑì, áÇ ÊÍÏÏ ÞíãÉ åÐÇ ÇáãÊÛíÑ ãÈÇÔÑÉ , Þã ÈÇÓÊÏÚÇÁ <function>PEAR::setErrorHandling</function> ßÅÌÑÇÁ ËÇÈÊ ßãÇ Ýí ÇáÊÇáí: <informalexample> <programlisting role="php">PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, "my_error_handler"); </programlisting> </informalexample> </para> <para> ÝíãÇ íáí ãËÇá áßíÝíÉ ÇáÊÈÏíá æÇáÚæÏÉ ÈÏæä ÊÍÏíÏ ÏÇáÉ ÇáÚæÏÉ ãÑÉ ÃÎÑì: <informalexample> <programlisting role="php">PEAR::setErrorMode(PEAR_ERROR_CALLBACK, "my_function_handler"); do_some_stuff(); PEAR::setErrorMode(PEAR_ERROR_DIE); do_some_critical_stuff(); PEAR::setErrorMode(PEAR_ERROR_CALLBACK); // ÇáÂä äÚæÏ áÇÓÊÎÏÇã // my_function_handler // ãÑÉ ÃÎÑì</programlisting> </informalexample> </para> </listitem> </varlistentry> </variablelist> </para> </refsect1> <refsect1> <title>ÇáÅÌÑÇÁÇÊ</title> <refsect2 id="function.pear.pear"> <title>PEAR::PEAR</title> <funcsynopsis> <funcprototype> <funcdef>PEAR()</funcdef> <void/> </funcprototype> </funcsynopsis> <para> åÐÇ åæ ÇáÅÌÑÇÁ PEAR class constructor. íãßä ÇÓÊÏÚÇÄå ãä Ãí äæÚ "class" ãÚÑÝ ßÇãÊÏÇÏ ãä PEAR class. <example> <title>ãËÇá "PEAR Class Constructor"</title> <programlisting role="php">class MyClass extends PEAR { var $foo, $bar; function MyClass($foo, $bar) { $this->PEAR(); $this->foo = $foo; $this->bar = $bar; } } </programlisting> </example> </para> </refsect2> <refsect2 id="function.pear.-pear"> <title>PEAR::_PEAR</title> <funcsynopsis> <funcprototype> <funcdef>_PEAR()</funcdef> <void/> </funcprototype> </funcsynopsis> <para> åÐÇ ÇáÅÌÑÇÁ íÓÊÏÚì ÎáÇá ØáÈ ÇáÅäåÇÁ (shutdown request). </para> </refsect2> </refsect1> </refentry> <refentry id="class.pear-error"> <refnamediv> <refname>PEAR_Error</refname> <refpurpose>PEAR error mechanism base class</refpurpose> </refnamediv> <refsynopsisdiv> <synopsis>$err = new <classname>PEAR_Error</classname>($msg);</synopsis> </refsynopsisdiv> <refsect1> <title>ÃÓÇáíÈ ÇáÎØÃ Error Modes</title> <para> ßÇÆä ÇáÎØÃ áÏíå ÇÓáæÈ íÍÏÏ ØÑíÞÉ ÇáÚãá ¡ íãßä ÇÎÊíÇÑ ÇÍÏ åÐÇ ÇáËæÇÈÊ: <variablelist id="pear.error-modes"> <varlistentry id="constant.pear-error-return"> <term>PEAR_ERROR_RETURN</term> <listitem> <simpara> ÝÞØ ÃÚÏ ßÇÆä ÇáÎØÃ ßäÇÊÌ, áÇ ÊÝÚá Ãí ÔíÁ ÂÎÑ. </simpara> </listitem> </varlistentry> <varlistentry id="constant.pear-error-print"> <term>PEAR_ERROR_PRINT</term> <listitem> <simpara> ÇØÈÚ ÑÓÇáÉ ÇáÎØÃ Ýí ÇáÅÌÑÇÁ. áÇ íÊã ÅíÞÇÝ ÇáÊäÝíÐ. </simpara> </listitem> </varlistentry> <varlistentry id="constant.pear-error-trigger"> <term>PEAR_ERROR_TRIGGER</term> <listitem> <simpara> ÈÇÓÊÎÏÇã ãÍÝÒ PHP <function>trigger_error</function> åÐå ÇáæÙíÝÉ ÊÙåÑ ÎØÃ ÏÇÎáí ãä ÎáÇá. íÊã ÅíÞÇÝ ÇáÊäÝíÐ ÇÐÇ ÚÑÝÊ ãÚÇáÌ ÇáÎØÃ ÇáÎÇÕ Èß Ãæ ÅÐÇ ÍÏÏÊ ÞíãÉ error severity = E_USER_ERROR. </simpara> </listitem> </varlistentry> <varlistentry id="constant.pear-error-die"> <term>PEAR_ERROR_DIE</term> <listitem> <simpara> ÇØÈÚ ÑÓÇáÉ ÎØÃ æÇÎÑÌ. íÊã ÅíÞÇÝ ÇáÊäÝíÐ ÈÇáÊÃßíÏ . </simpara> </listitem> </varlistentry> <varlistentry id="constant.pear-error-callback"> <term>PEAR_ERROR_CALLBACK</term> <listitem> <simpara> ÇÓÊÎÏã ÏÇáÉ ááÚæÏÉ Çæ ÅÌÑÇÁ áãÚÇáÌÉ ÇáÎØÃ. íÊã ÅíÞÇÝ ÇáÊäÝíÐ. </simpara> </listitem> </varlistentry> </variablelist> </para> </refsect1> <refsect1> <title>ÇáÎÕÇÆÕ</title> <simpara></simpara> </refsect1> <refsect1> <title>ÇáÅÌÑÇÁÇÊ</title> <funcsynopsis> <funcprototype> <funcdef><function>PEAR_Error::PEAR_Error</function></funcdef> <paramdef> <parameter><optional>message</optional></parameter> <parameter><optional>code</optional></parameter> <parameter><optional>mode</optional></parameter> <parameter><optional>options</optional></parameter> <parameter><optional>userinfo</optional></parameter> </paramdef> </funcprototype> </funcsynopsis> <refsect2> <title>ÇáæÕÝ</title> <para> ÅÌÑÇÁ PEAR_Error constructor. ÇáãÄÔÑÇÊ: <variablelist> <varlistentry> <term>message</term> <listitem> <simpara> ÑÓÇáÉ ÎØÃ, ÇáÞíãÉ ÇáÇÝÊÑÇÖíÉ "unknown error" </simpara> </listitem> </varlistentry> <varlistentry> <term>code</term> <listitem> <simpara> ÑÞã ÎØÃ (ÇÎÊíÇÑí) </simpara> </listitem> </varlistentry> <varlistentry> <term>mode</term> <listitem> <simpara> ÇÓáæÈ ÇáÚãá. ÇäÙÑ ÞÓã<link linkend="pear.error-modes"> ÇÓÇáíÈ ÇáÎØÃ error modes</link> ááÊÝÇÕíá. </simpara> </listitem> </varlistentry> <varlistentry> <term>options</term> <listitem> <simpara> ÇÐÇ ßÇä ÇáÇÓáæÈ ÇáãÍÏÏ ÃÚáÇå íÓÊÎÏã ÎíÇÑÇÊ , ÇÓÊÎÏã åÐå ÇáãÄÔÑÇÊ. ÍÇáíÇð ÇáãÍÝÒ "trigger" æ ÇÓáæÈ ÇáÚæÏÉ "callback" åãÇ ÝÞØ ÇáÐÇä íÓÊÎÏãÇä ãÄÔÑ ÇáÎíÇÑÇÊ options. Ýí ÇÓáæÈ ÇáãÍÝÒ, åÐÇ ÇáãÄÔÑ åæ æÇÍÏ ãä <constant>E_USER_NOTICE</constant>, <constant>E_USER_WARNING</constant> Ãæ <constant>E_USER_ERROR</constant>. Ýí ÇÓáæÈ ÇáÚæÏÉ "callback", åÐÇ ÇáãÄÔÑ íÌÈ Ãä íÊÖãä ÅãÇ ÇÓã ÏÇáÉ ÇáÚæÏÉ (äÕíÇð), Çæ ãÕÝæÝÉ ÐÇÊ ÚäÕÑíä (ßÇÆä, äÕ) ÊãËá ÇáßÇÆä æÇáÅÌÑÇÁ ÇáÐí íÊã ÇÓÊÏÚÇÄå Ýí ÇáÚæÏÉ. </simpara> </listitem> </varlistentry> </variablelist> </para> </refsect2> </refsect1> </refentry> </reference> <!-- 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 sgml-parent-document:nil sgml-default-dtd-file:"../../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 -->