cvs: phpdoc-sk /appendices debugger.xml history.xml migration4.xml migration5.xml

[email protected] ("Joseph Drake") Thu, 08 Jul 2004 00:09:30 -0000
Newsgroups php.doc.sk
Message-ID <cvsjoseph1089245370@cvsserver>
joseph		Wed Jul  7 20:09:30 2004 EDT

  Modified files:              
    /phpdoc-sk/appendices	debugger.xml history.xml migration4.xml 
                         	migration5.xml 
  Log:
  updated
joseph-20040707200930.txt (text/plain, 57.1 KB)
http://cvs.php.net/diff.php/phpdoc-sk/appendices/debugger.xml?r1=1.6&r2=1.7&ty=u
Index: phpdoc-sk/appendices/debugger.xml
diff -u phpdoc-sk/appendices/debugger.xml:1.6 phpdoc-sk/appendices/debugger.xml:1.7
--- phpdoc-sk/appendices/debugger.xml:1.6	Wed Feb 11 19:11:32 2004
+++ phpdoc-sk/appendices/debugger.xml	Wed Jul  7 20:09:30 2004
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="iso-8859-2"?>
-<!-- EN-Revision: 1.26 Maintainer: joseph Status: ready -->
+<!-- EN-Revision: 1.27 Maintainer: joseph Status: ready -->
  <appendix id="debugger">
   <title>Ladenie PHP</title>
 
@@ -80,11 +80,11 @@
    <para>
     Riadok má tento formát:
     <informalexample>
-     <literallayout>
+     <programlisting>
 <![CDATA[
 date time host(pid) type: message-data
 ]]>
-     </literallayout>
+     </programlisting>
     </informalexample>
    </para>
    <para>
http://cvs.php.net/diff.php/phpdoc-sk/appendices/history.xml?r1=1.8&r2=1.9&ty=u
Index: phpdoc-sk/appendices/history.xml
diff -u phpdoc-sk/appendices/history.xml:1.8 phpdoc-sk/appendices/history.xml:1.9
--- phpdoc-sk/appendices/history.xml:1.8	Wed Feb 11 19:11:32 2004
+++ phpdoc-sk/appendices/history.xml	Wed Jul  7 20:09:30 2004
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="iso-8859-2"?>
-<!-- EN-Revision: 1.22 Maintainer: joseph Status: ready -->
+<!-- EN-Revision: 1.24 Maintainer: joseph Status: ready -->
 
 <appendix id="history">
  <title>História PHP a súvisiacich projektov</title>
@@ -306,7 +306,7 @@
    Èlánky o PHP sa objavili v Dr. Dobbs, Linux Enterprise,
    Linux Magazine a v mnohých ïal¹ích. Èlánky o aplikáciách
    zalo¾ených na ASP migrujúcich do PHP pod Windows sa dokonca
-   objavili aj na Microsoft <acronym>MSDN</acronym>!
+   objavili aj na <productname>Microsoft</productname> <acronym>MSDN</acronym>!
   </para>
  </sect1>
 
http://cvs.php.net/diff.php/phpdoc-sk/appendices/migration4.xml?r1=1.9&r2=1.10&ty=u
Index: phpdoc-sk/appendices/migration4.xml
diff -u phpdoc-sk/appendices/migration4.xml:1.9 phpdoc-sk/appendices/migration4.xml:1.10
--- phpdoc-sk/appendices/migration4.xml:1.9	Wed Feb 11 19:11:32 2004
+++ phpdoc-sk/appendices/migration4.xml	Wed Jul  7 20:09:30 2004
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="iso-8859-2"?>
-<!-- EN-Revision: 1.36 Maintainer: joseph Status: ready -->
+<!-- EN-Revision: 1.37 Maintainer: joseph Status: ready -->
  <appendix id="migration4">
   <title>Migrácia z PHP 3 na PHP 4</title>
 	
@@ -442,7 +442,7 @@
     Zatial èo zaobchádzanie s globálnymi premennými malo v PHP 3 a
     prvých verziách PHP 4 jednoduchý fokus, fokus sa zmenil, aby bol
     bezpeènej¹í. Zatial èo následujúci príklad v PHP 3 fungoval v pohode,
-    v PHP 4 to musí by» ($GLOBALS["id"]);. Toto je len jeden problém
+    v PHP 4 to musí by» unset(<literal>unset($GLOBALS["id"])</literal>);. Toto je len jeden problém
     zaobchádzania s globálnymi premennými. Mali by ste v¾dy pou¾íva»
     $GLOBALS, pri nových verziách PHP 4 ste tak nútení urobi» vo väè¹ine
     prípadov. O tejto téme sa viac doèítate v <link linkend="references.global">
http://cvs.php.net/diff.php/phpdoc-sk/appendices/migration5.xml?r1=1.1&r2=1.2&ty=u
Index: phpdoc-sk/appendices/migration5.xml
diff -u phpdoc-sk/appendices/migration5.xml:1.1 phpdoc-sk/appendices/migration5.xml:1.2
--- phpdoc-sk/appendices/migration5.xml:1.1	Wed Feb 11 19:12:22 2004
+++ phpdoc-sk/appendices/migration5.xml	Wed Jul  7 20:09:30 2004
@@ -1,90 +1,189 @@
 <?xml version="1.0" encoding="iso-8859-2"?>
-<!-- EN-Revision: 1.4 Maintainer: joseph Status: ready -->
+<!-- EN-Revision: 1.21 Mainteiner: joseph Status: ready -->
  <appendix id="migration5">
   <title>Migrácia z PHP 4 na PHP 5</title>
 
   <section id='migration5.changes'>
    <title>Èo sa zmenilo v PHP 5</title>
    <para>
-    PHP 5 a integrovaný Zend Engine 2 významne zlep¹ili výkon
-    a schopnosti PHP, ale významná pozornos» sa venovala èo najmen¹iemu
-    poru¹eniu existujúceho kódu. Tak¾e migrácia vá¹ho kódu z PHP 4 na 5
-    by malo by» µahké. Väè¹ina existujúceho PHP 4 kódu by mala by» pripravená
-    na beh bez zmien, ale stále by ste mali vedie» o <link
-    linkend="migration5.incompatible">pár odli¹nostiach</link> a
-    postara» sa o testovanie vá¹ho kódu pred prepnutím verzií v produkènom
-    prostredí.
+    PHP 5 a integrovaný Zend Engine 2 veµkolepo zlep¹ili výkon a
+    schopnosti PHP, ale veµká staros» bola venovaná poru¹eniu èo najmen¹ieho
+    mno¾stva existujúceho kódu. Tak¾e migrovanie vá¹ho kódu z PHP 4 na 5
+    by malo by» veµmi jednoduché. Existujúci PHP 4 kód by mal by» pripravený
+    be¾a» bez zmien, ale zav¹e by ste mali vedie» o <link
+    linkend="migration5.incompatible">pár rozdieloch</link> a postara»
+    sa o testovanie vá¹ho kódu pred prepnutím verzií v produkèných
+    prostrediach.
    </para>
   </section>
 
   <section id="migration5.incompatible">
-   <title>Spätné Nekompaktibilné Zmeny</title>
+   <title>Spätne Nekompatibilné Zmeny</title>
    <para>
-    I keï väè¹ina existujúceho PHP 4 kódu by mala fungova» bez zmien, mali by
-    venova» pozornos» týmto spätným nekompaktibilným zmenám:
+    I keï vaè¹ina existujúceho PHP 4 kódu by mala fungova» bez zmien, mali by
+    ste da» pozor na následujúce spätne nekompatibilné zmeny:
    </para>
    <itemizedlist>
     <listitem><simpara>
       <function>strrpos</function> a <function>strripos</function> teraz
-      pou¾ívajú celý re»azec ako ihlu.
+      vyu¾ívajú celý re»azec ako ihlu.
     </simpara></listitem>
     <listitem><simpara>
-      Nelegálne pou¾itie offsetov re»azca spôsobuje <constant>E_ERROR</constant> namesto
-      <constant>E_WARNING</constant>.
+      Nelegálne pou¾itie offsetov re»azca spôsobuje <constant>E_ERROR</constant>
+      namiesto <constant>E_WARNING</constant>.
     </simpara></listitem>
     <listitem><simpara>
-      <function>array_merge</function> bola zmenená na akceptovanie iba polí. 
-      Ak sa vlo¾í premenná, ktorá nie je typu array, <constant>E_WARNING</constant> 
-      sa objaví pre ka¾dý taký parameter. Buïte opatrný preto¾e vá¹ kód mô¾e
-      zaèa» emitova» <constant>E_WARNING</constant> z èista jasna.
+      <function>array_merge</function> bola zmenená, aby prijímala iba polia.
+      Ak sa po¹le premenná, ktorá nie je pole, vyhodí sa <constant>E_WARNING</constant>
+      pre ka¾dý taký parameter. Buïte opatrný, preto¾e vá¹ kód mô¾e zaèa» emitova»
+      <constant>E_WARNING</constant> z nièoho niè.
     </simpara></listitem>
     <listitem><simpara>
-     PATH_TRANSLATED premenná servera u¾ nie je implicitne nastavená pod
-     Apache2 SAPI na rozdiel od situácie v PHP 4, kde je nastavená na
-     rovnakú hodnotu ako SCRIPT_FILENAME premenná servera, keï nie je
-     obsadená Apacheom. Táto zmena sa urobila na vyhovenie s <ulink
-      url="&url.cgispecs;">CGI ¹pecifikáciou</ulink>. Prosím, pozrite si <ulink
-      url="&url.php.bugs;23610">bug #23610</ulink> pre ïal¹ie informácie.
+     Premenná servera PATH_TRANSLATED u¾ viac nie je nastavená implicitne pod
+     Apache2 SAPI ako kontrast k situácii v PHP 4, kde je nastavená na
+     rovnakú hodnotu ako premenná servera SCRIPT_FILENAME, kde nie je obývaná
+     Apache-om. Táto zmena bola urobená, aby vyhovovala <ulink
+      url="&url.cgispecs;">CGI ¹pecifikácii</ulink>. Prosím, pozrite si <ulink
+      url="&url.php.bugs;23610">bug #23610</ulink> pre viac informácii.
     </simpara></listitem>
     <listitem><simpara>
-     Kon¹tanta <constant>T_ML_CONSTANT</constant> u¾ nie je definovaná
-     roz¹írením <link linkend="ref.tokenizer">Tokenizer</link>. Ak je
-     error_reporting nastanený na <constant>E_ALL</constant>, PHP vygeneruje
-     oznam. Namiesto <constant>T_ML_CONSTANT</constant> pre /* */ sa pou¾ije
-     kon¹tanta <constant>T_COMMENT</constant>, i keï obe // a /* */
-     sa berú ako kon¹tanta <constant>T_COMMENT</constant>. Av¹ak PHPDoc
-     ¹týlové komentáre /** */ , ktoré poèínajúc PHP5 sú analyzované PHP-èkom,
-     sú rozpoznávané ako <constant>T_DOC_COMMENT</constant>.
+     Kon¹tanta <constant>T_ML_CONSTANT</constant> u¾ nie je definovaná roz¹írením
+     <link linkend="ref.tokenizer">Tokenizer</link>. Ak je error_reporting
+     nastavený na <constant>E_ALL</constant>, PHP vygeneruje hlá¹ku.
+     I keï <constant>T_ML_CONSTANT</constant> sa nikdy vôbec nepo¾ila,
+     bola definovaná v PHP 4. V oboch PHP 4 a PHP 5  // a /* */
+     sa chápu ako kon¹tanta <constant>T_COMMENT</constant>. Av¹ak PHPDoc
+     ¹týlové komentáre /** */ , ktoré zaèínajú PHP 5 sú analyzované PHP, sa
+     rozpoznávajú ako <constant>T_DOC_COMMENT</constant>.
     </simpara></listitem>
     <listitem><simpara>
-     $_SERVER by mala by» obsadená s argc a argv ak variables_order
-     zahàòa "S".  Ak ste ¹pecificky nakonfigurovali svoj systém na
-     nevytváranie $_SERVER, potom samozrejme by tam nemala by». Zmena bola
-     v¾dy urobi» z argc a argv premennú v  CLI verziu bez ohµadu na
-     nastavenie variables_order.  CLI verzia bude v¾dy obsadzova»
-     globálne premenné $argc a $argv.
+      $_SERVER by mala by» obývaná s argc a argv ak  <link
+       linkend="ini.variables-order">variables_order</link> zahàòa "S". Ak
+      ste ¹pecificky konfigurovali vá¹ system, aby nevytváral $_SERVER,
+      potom samozrejme by tam nemala by». Zmenou bolo v¾dy urobi» argc
+      a argv dostupné v CLI verzii bez ohµadu na nastavenie <link
+       linkend="ini.variables-order">variables_order</link>. CLI verzia
+      bude teraz v¾dy obýva» globálne premenné $argc a $argv.
     </simpara></listitem>
     <listitem><simpara>
-      Triedy sa musia pred pou¾itím deklarova».
+      Objekt so ¾iadnymi vlastnos»ami sa u¾ viac nepova¾uje za "empty".
+    </simpara></listitem>
+    <listitem><simpara>
+     V niektorých prípadoch triedy musia by» deklarované pred pou¾itím. Stane sa tak iba
+     ak sa pou¾ije niektorá z nových vlastností PHP 5. Inak je správanie
+     staré.
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>get_class</function> poèínajúc PHP 5 vracia názov triedy
+      ako bola deklarovaná, èo mô¾e vies» k problémom v star¹ích skriptoch,
+      ktoré sa spoliehajú na predo¹lé správanie (názov triedy je lowercase).
+      Mo¾né rie¹enie je vyhµada» <function>get_class</function> vo 
+      va¹ich skriptoch a pou¾i» <function>strtolower</function>.
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>ip2long</function> teraz vracia FALSE, keï sa po¹le neplatná IP
+      adresa ako argument funkcii a u¾ nie
+      <literal>-1</literal>.
     </simpara></listitem>
    </itemizedlist>
+
+   <para>
+    <example>
+     <title><function>strrpos</function> a <function>strripos</function> teraz
+      pou¾íva celý re»azec ako ihlu</title>
+     <programlisting role="php">
+<![CDATA[
+<?php
+var_dump(strrpos('ABCDEF','DEF')); //int(3)
+
+var_dump(strrpos('ABCDEF','DAF')); //bool(false)
+?>
+]]>
+     </programlisting>
+    </example>
+   </para>
+   <para>
+    <example>
+     <title>Objekt so ¾iadnými vlastnos»ami sa u¾ viac nepova¾uje za "empty"</title>
+     <programlisting role="php">
+<![CDATA[
+<?php
+class test { }
+$t = new test();
+
+var_dump(empty($t)); // echo bool(false)
+
+if (!$t) {
+    // Sa vykona
+}
+?>
+]]>
+     </programlisting>
+    </example>
+   </para>
+   <para>
+    <example>
+     <title>V niektorých prípadoch sa triedy pred pou¾itím musia deklarova»</title>
+     <programlisting role="php">
+<![CDATA[
+<?php
+
+//funguje bez chyb:
+$a = new a();
+class a {
+}
+
+
+//vyhodi chybu:
+$a = new b();
+
+interface c{
+}
+class b implements c {
+} 
+
+?>
+]]>
+     </programlisting>
+    </example>
+   </para>
+  </section>
+
+  <section id="migration5.cli-cgi">
+   <title>CLI a CGI</title>
+   <para>
+    V PHP 5 boli urobené nejaké zmeny v názvoch súborov CLI a CGI. V PHP 5
+    bola CGI verzia premenovaná na <literal>php-cgi.exe</literal> (pred tým
+    <literal>php.exe</literal>) a CLI verzia je teraz v hlavnom adresári
+    (pred tým <literal>cli/php.exe</literal>).
+   </para>
+   <para>
+    V PHP 5 bol tie¾ predstavený nový mód:
+    <literal>php-win.exe</literal>. Tento je zhodný s CLI verziou, a¾ na to, ¾e
+    php-win neposiela na výstup niè, a teda poskytuje ¾iadnu konzolu (¾iadne
+    "dosovské okno" sa obrazovke neobjaví). Toto správanie je podobné k php-gtk.
+   </para>
+   <para>
+    V PHP 5 bude CLI verzia v¾dy obýva» globálne premenné $argv a $argc.
+   </para>
   </section>
 
   <section id="migration5.configuration">
-   <title>Migrujúce Konfiguraèné Súbory</title>
+   <title>Migrácia konfiguraèných súborov</title>
    <para>
-    Nakoµko si ISAPI moduly zmenili svoje názvy, z php4xxx na php5xxx,
-    musíte urobi» nejaké zmeny v konfiguraèných súboroch. Tie¾ nastali
-    zmeny v názvoch súborov CLI a CGI. Prosím, pozrite si zodpovedajúcu
-    sekciu pre viac informácii.
+    Nakoµko ISAPI moduly zmenili svoje názvy, od php4xxx do php5xxx, musíte
+    urobi» niekoµko zmien v konfiguraèných súboroch. Tie¾ boli urobené
+    zmeny v názvoch súborov CLI a CGI. Prosím, pozrite si <link
+     linkend="migration5.cli-cgi">zodpovedajúcu sekciu</link> pre viac
+    informácii.
    </para>
    <para>
-    Migrovanie Apache konfigurácie je extrémne jednoduché. Prozri príklad
-    uvedený ni¾¹ie na kontrolu zmien, ktoré musíte urobi»:
+    Migrova» Apache konfiguráciu je extrémne jednoduché. Pozrite si ni¾¹ie uvedený
+    príklad a zistite, ktoré zmeny musíte urobi»:
     <informalexample>
      <programlisting role="apache-conf">
 <![CDATA[
-# zamente tento riadok: 
+# zamente tento riadok:    
 LoadModule php4_module /php/sapi/php4apache2.dll
 
 # za tento:
@@ -94,13 +193,13 @@
     </informalexample>
    </para>
    <para>
-    Ak na vá¹om webserveri be¾í PHP v CGI móde, mali by ste si v¹imnú», ¾e
-    si CGI verzia zmenila svoj názov z php.exe na php-cgi.exe.
+    Ak na va¹om webserveri PHP be¾í v CGI móde, mali by ste si v¹timnú», ¾e
+    CGI verzia si zmenila svoj názov z php.exe na php-cgi.exe.
     V Apache by ste mali urobi» nieèo takéto:
     <informalexample>
      <programlisting role="apache-conf">
 <![CDATA[
-# zamente tento riadok:    
+# zamente tento riadok:
 Action application/x-httpd-php "/php/php.exe" 
 
 # za tento:
@@ -110,9 +209,1389 @@
     </informalexample>
    </para>
    <para>
-    V iných webserveroch musíte zmeni» názvy súborov buï v CGI alebo ISAPI
-    moduloch.
+    V iných webserveroch musíte zmeni» názov súboru buï CGI alebo ISAPI modulu.
+   </para>
+  </section>
+
+  <section id="migration5.functions">
+   <title>Nové funkcie</title>
+   <para>
+    V PHP 5 sú nejaké nové funkcie. Tu je ich zoznam:
+   </para>
+   <para>Polia:</para>
+    <itemizedlist>
+    <listitem><simpara>
+      <function>array_combine</function> - Vytvára pole pomocou jedného poµa
+      pre kµúèe a druhého pre jeho hodnoty
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>array_diff_uassoc</function> - Vypoèíta rozdiel polí
+      s dodatoènou kontrolou indexov, ktorá sa vykoná u¾ívateµom dodanou
+      callback funkciou
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>array_udiff</function> - Vypoèíta rozdiel polí pomocou
+     callback funkcie pre dátove porovnanie
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>array_udiff_assoc</function> - Vypoèíta rozdiel polí
+      s dodatoènou kontrolou indexov. Dáta sa porovnávajú pomocou callback
+      funkcie
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>array_udiff_uassoc</function> - Vypoèíta rozdiel polí
+      s dodatoènou kontrolou indexov. Dáta sa porovnávajú pomocou callback
+      funkcie. Kontrola indexov sa tie¾ vykoná callback funkciou
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>array_walk_recursive</function> - Aplikuje u¾ívateµskú funkciu
+      rekurzívne na ka¾dého èlena poµa
+    </simpara></listitem>
+   </itemizedlist>
+
+   <para>InterBase:</para>
+   <itemizedlist>
+    <listitem><simpara>
+      <function>ibase_affected_rows</function> - Vracia poèet riadkov, ktoré
+      sú ovplyvnené predo¹lým dotazom
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>ibase_backup</function> - Inicializuje zálohovaciu úlohu
+      v mana¾éri slu¾ieb a vracia okam¾ite
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>ibase_commit_ret</function> - Vykoná transakciu bez jej
+      uzatvorenia
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>ibase_db_info</function> - Vy¾iada ¹tatistiku o
+      databáze
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>ibase_drop_db</function> - Odstráni databázu
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>ibase_errcode</function> - Vracia kód chyby
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>ibase_free_event_handler</function> - Zru¹í registrovaný
+      handler udalostí
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>ibase_gen_id</function> - Inkrementuje nazvaný generátor
+      a vracia jeho novú hodnotu
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>ibase_maintain_db</function> - Vykoná príkaz údr¾by na
+      databázovom serveri
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>ibase_name_result</function> - Priradí názov sade výsledkov
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>ibase_num_params</function> - Vracia poèet parametrov
+      v pripravenom dotaze
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>ibase_param_info</function> - Vracia informáciu o
+      parametri v pripravenom dotaze
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>ibase_restore</function> - Zahajuje obnovovaciu úlohu v
+      mana¾éri slu¾ieb a vracia okam¾ite
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>ibase_rollback_ret</function> - Zroluje transakciu a
+      uchova» kontext transakcie
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>ibase_server_info</function> - Vy¾iada ¹tatistiku o
+      databáze
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>ibase_service_attach</function> - Pripojí sa na mana¾éra slu¾ieb
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>ibase_service_detach</function> - Odpojí sa z mana¾éra slu¾ieb
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>ibase_set_event_handler</function> - Registruje callback
+      funkciu, aby sa volala pri poslaní udalosti
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>ibase_wait_event</function> - Èaká na udalos», ktorá má posla»
+      databáza
+    </simpara></listitem>
+   </itemizedlist>
+
+   <para>iconv:</para>
+   <itemizedlist>
+    <listitem><simpara>
+      <function>iconv_mime_decode</function> - Dekóduje MIME pole hlavièky
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>iconv_mime_decode_headers</function> - Dekóduje viaceré MIME
+      polia hlavièiek naráz
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>iconv_mime_encode</function> - Komponuje MIME pole hlavièky
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>iconv_strlen</function> - Vracia poèet znakov re»azca
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>iconv_strpos</function> - Hµadá pozíciu prvého výskytu
+      ihly v kope sena
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>iconv_strrpos</function> - Hµadá posledný výskyt ihly
+      v urèenom rozsahu kopy sena
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>iconv_substr</function> - Odstrihne èas» re»azca
+    </simpara></listitem>
+   </itemizedlist>
+
+   <para>Prúdy:</para>
+   <itemizedlist>
+    <listitem><simpara>
+      <function>stream_copy_to_stream</function> - Kopíruje dáta z jedného prúdu
+      do druhého
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>stream_get_line</function> - Získa riadok zo zdroja prúdu
+      a¾ po daný oddelovaè
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>stream_socket_accept</function> - Akceptuje pripojenie na
+      soket, ktorý vytvoril <function>stream_socket_server</function>
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>stream_socket_client</function> - Otvára Internetové alebo Unixové
+      pripojenie soketu domény
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>stream_socket_get_name</function> - Získa názov miestnych
+      alebo vzdialených soketov
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>stream_socket_recvfrom</function> - Prijíma dáta zo
+      soketu, pripojeného alebo nie
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>stream_socket_sendto</function> - Posiela správu soketu,
+      èi je pripojený alebo nie
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>stream_socket_server</function> - Vytvára Internetový alebo Unixový
+      soket domény servera
+    </simpara></listitem>
+   </itemizedlist>
+
+   <para>Iné:</para>
+   <itemizedlist>
+    <listitem><simpara>
+      <function>convert_uudecode</function> - dekóduje uu-kódovaný re»azec
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>convert_uuencode</function> - uu-kóduje re»azec
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>curl_copy_handle</function> - Kopíruje cURL handle
+      spolu so v¹etkými jeho preferenciami
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>dba_key_split</function> - Rozdelí kµúè v reprezentácii
+      re»azca do reprezentácie poµa
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>dbase_get_header_info</function> -Získa info o hlavièke
+      dBase databázy
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>dbx_fetch_row</function> - Prinesie riadky z dotazu-výsledku,
+      ktorý mal DBX_RESULT_UNBUFFERED flag sadu
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>fbsql_set_password</function> - Zmení heslo pre daného u¾ívateµa
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>file_put_contents</function> - Zapí¹e re»azec do súboru
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>ftp_alloc</function> - Alokuje miesto pre súbor, ktorý sa
+      má uploadova»
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>get_declared_interfaces</function> - Vracia pole v¹etkých
+      deklarovaných rohraní
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>get_headers</function> - Prinesie v¹etky hlavièky poslané
+      serverom v odovzve na HTTP po¾iadavku
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>headers_list</function> - Vracia zoznam poslaných hlavièiek odozvy
+      (alebo pripravených na poslanie)
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>http_build_query</function> - Generuje URL-kódovaný query re»azec
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>idate</function> - Formátuju miestny èas/dátum ako integer
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>image_type_to_extension</function> - Získa roz¹írenie súboru pre
+      typ-image, ktorý vráti <function>getimagesize</function>,
+      <function>exif_read_data</function>,
+      <function>exif_thumbnail</function>,
+      <function>exif_imagetype</function>
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>imagefilter</function> - Aplikuje Filter na image pomocou
+      vlastného uhla 
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>imap_getacl</function> - Získa ACL pre danú mailovú schránku
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>ldap_sasl_bind</function> - Zvia¾e do LDAP adresára pomcou SASL
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>mb_list_encodings</function> - Vracia pole v¹etkých podporovaných
+      kódovaní
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>pcntl_getpriority</function> - Získa prioritu hocakého
+      procesu
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>pcntl_wait</function> - Èaká na alebo vracia status rozvetveného
+      childu ako bolo definované systémovým volaním waitpid()
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>pg_version</function> - Vracia pole s verziou klienta, protokolu
+      a servera (ak dostupné)
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>php_check_syntax</function> - Kontroluje syntax urèeného
+      súboru
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>php_strip_whitespace</function> - Vracia zdroj s odstranenými
+      komentármi a prázdnymi znakmi
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>proc_nice</function> - Zmení prioritu aktuálneho procesu
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>pspell_config_data_dir</function> - Zmení umiestnenie dátových
+      súborov jazkyka
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>pspell_config_dict_dir</function> - Zmení umiestnenie hlavného
+      zoznamu slov
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>setrawcookie</function> - Po¹le cookie bez ¾iadneho url kódovania
+      hodnoty
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>snmp_read_mib</function> - Èíta a analyzuje MIB súbor do
+      aktívneho MIB stromu
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>sqlite_fetch_column_types</function> - Vracia pole typov
+      ståpcov z osobitnej tabuµky
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>str_split</function> - Konvertuje re»azec na pole
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>strpbrk</function> - Hµadá v re»azci akúkoµvek sadu
+      znakov
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>substr_compare</function> - Binary bezpeèné voliteµné case
+      nesenzitívne porovnanie dvoch re»azcov z offsetu, a¾ po då¾ku
+      znakov
+    </simpara></listitem>
+    <listitem><simpara>
+      <function>time_nanosleep</function> - Spánok na poèet sekúnd a
+      nano sekúnd
+    </simpara></listitem>
+   </itemizedlist>
+   <note>
+    <para>
+     Roz¹írenie <link linkend="ref.tidy">Tidy</link> tie¾ kompletne zmenilo
+     svoje API.
+    </para>
+   </note>
+  </section>
+
+
+  <section id="migration5.newconf">
+   <title>Nové Direktívy</title>
+   <para>
+    V PHP 5 boli predstavené nové &php.ini; direktívy. Tu je ich
+    zoznam:
+   </para>
+   <itemizedlist>
+    <listitem><simpara>
+     mail.force_extra_parameters - Zabezpeèí, aby sa pridanie urèených
+     parametrov poslalo ako extra parametre bináru sendmail. Tieto
+     parametre v¾dy nahradia hodnotu piateho parametra do
+     <function>mail</function>, dokonca aj v safe móde
+   </simpara></listitem>
+    <listitem><simpara>
+     <link linkend="ini.register-long-arrays">register_long_arrays</link> -
+     umo¾ní/neumo¾ní PHP registrova» odmietané dlhé $HTTP_*_VARS
+   </simpara></listitem>
+    <listitem><simpara>
+      <link linkend="ini.session.hash-function">session.hash_function</link> -
+      oznaèí hash funkciu (MD5 alebo SHA-1)
+   </simpara></listitem>
+    <listitem><simpara>
+      <link
+       linkend="ini.session.hash-bits-per-character">session.hash_bits_per_character</link>
+      - definuje koµko bitov sa ulo¾í v ka¾dom znaku pri konverzii binárnych
+      hash dát na nieèo èitateµné (od 4 do 6)
+   </simpara></listitem>
+    <listitem><simpara>
+     zend.ze1_compatibility_mode - Povolí mód kompatibility so Zend Engine 1 (PHP 4)
+   </simpara></listitem>
+   </itemizedlist>
+  </section>
+
+  <section id="migration5.databases">
+   <title>Databázy</title>
+   <para>
+    V PHP 5 sa urobilo niekoµko zmien vrátane databáz (MySQL a SQLite).
+   </para>
+   <para>
+    V PHP 5 nie sú klientské kni¾nice MySQL pribalené, kvôli licenèným
+    problémom a niektorých iných. Viac informácii zisíkate èítaním <link
+     linkend="faq.databases.mysql.php5">FAQ pol¾ky</link>.
+   </para>
+   <para>
+    Tie¾ existuje nové roz¹írenie, <link linkend="ref.mysqli">MySQLi (Improved
+     MySQL)</link>, ktoré je dizajnované na prácu s MySQL 4.1 a vy¹¹ie.
+   </para>
+   <para>
+    Od PHP 5, roz¹írenie <link linkend="ref.sqlite">SQLite</link> je v PHP
+    zabudované. SQLite je vnoriteµný SQL databázový engine a nie je pou¾itý
+    klinetskou kni¾nicou na pripojenie na veµký databázový server (ako MySQL
+    alebo PostgreSQL). Kni¾nica SQLite èíta a zapisuje priamo do a z
+    databázových súborov na disku.
+   </para>
+  </section>
+
+
+  <section id='migration5.oop'>
+   <title>Nový Model Objektov</title>
+   <para>
+    V PHP 5 je nový Model Objektov. Zaobchádzanie s objektami v PHP bolo
+    kompletne prepísané, umo¾òujúc tak lep¹í výkon a viac vlastností.
+    V predo¹lej verzii PHP boli objekty chápané ako primitívne typy
+    (napr. integere a stringy). Nevýhodou tejto metódy bolo, ¾e sa celý
+    objekt sémanticky skopíroval pri priradení premennej alebo sa metóde
+    poslala ako parameter. Po novom sú objekty odkazované cez handle a
+    nie hodnotu (handle si mô¾ete predstavi» ako idetifikátor
+    objektu).
+   </para>
+   <para>
+    Mnoho PHP programátorv sa neobáva problému kopírovania starého modelu
+    objektov, a preto väè¹ina PHP aplikácii bude fungova» mimo poèítaèa
+    alebo len s málo modifikáciami.
+   </para>
+
+   <section id='migration.oop.members'>
+    <title>Èlenovia Private a Protected</title>
+    <para>
+     PHP 5 predstavuje èlenské premenné private a protected, umo¾òujú vám
+     definova» viditeµnos» vlastností triedy.
+    </para>
+    <example>
+     <title>Prístupnos» èlenov Private a Protected</title>
+     <simpara>
+      K èlenskym premenným Protected sa dá pristupova» v triede roz¹irujúcej
+      triedy, v ktorej sú deklarované, kde¾to k èlenským premenným Private
+      sa dá pristupova» iba cez triedu, ktorej patria.
+     </simpara>
+     <programlisting role="php">
+<![CDATA[
+<?php
+class MyClass {
+    private $Hello = "Hello, World!\n";
+    protected $Bar = "Hello, Foo!\n";
+    protected $Foo = "Hello, Bar!\n";
+
+    function printHello() {
+        print "MyClass::printHello() " . $this->Hello;
+        print "MyClass::printHello() " . $this->Bar;
+        print "MyClass::printHello() " . $this->Foo;
+    }
+}
+
+class MyClass2 extends MyClass {
+    protected $Foo;
+              
+    function printHello() {
+        MyClass::printHello();                          /* Malo by vypisat */
+        print "MyClass2::printHello() " . $this->Hello; /* Nemalo by vypisat nic */
+        print "MyClass2::printHello() " . $this->Bar;   /* Nemalo by vypisat (nedeklarovane)*/
+        print "MyClass2::printHello() " . $this->Foo;   /* Malo by vypisat */
+    }
+}
+
+$obj = new MyClass();
+print $obj->Hello;  /* Nemalo by vypisat nic */
+print $obj->Bar;    /* Nemalo by vypisat nic */
+print $obj->Foo;    /* Nemalo by vypisat nic */
+$obj->printHello(); /* Malo by vypisat */
+
+$obj = new MyClass2();
+print $obj->Hello;  /* Nemalo by vypisat nic */
+print $obj->Bar;    /* Nemalo by vypisat nic */
+print $obj->Foo;    /* Nemalo by vypisat nic */
+$obj->printHello();
+?>
+]]>
+     </programlisting>
+    </example>
+   </section>
+   
+   <section id='migration.oop.methods'>
+    <title>Metódy Private a Protected</title>
+    <para>
+     Spolu s PHP 5 boli predstavené aj metódy private a protected.
+    </para>
+    <example>
+     <title>Príklad metódy Protected</title>
+     <programlisting role="php">
+<![CDATA[
+<?php
+class Foo {
+    private function aPrivateMethod() {
+        echo "Foo::aPrivateMethod() called.\n";
+    }
+
+    protected function aProtectedMethod() {
+        echo "Foo::aProtectedMethod() called.\n";
+        $this->aPrivateMethod();
+    }
+}
+
+class Bar extends Foo {
+    public function aPublicMethod() {
+        echo "Bar::aPublicMethod() called.\n";
+        $this->aProtectedMethod();
+    }
+}
+
+$o = new Bar;
+$o->aPublicMethod();
+?>
+]]>
+     </programlisting>
+    </example>
+    <simpara>
+     Starý kód, ktorý nemal ¾iadne u¾ívateµom definované triedy alebo funkcie nazvané 
+     &quot;public&quot;, &quot;protected&quot; alebo &quot;private&quot; by mal be¾a»
+     bez modifikácii.
+    </simpara>
+   </section>
+
+   <section id='migration.oop.abstract'>
+    <title>Triedy a Metódy Abstract</title>
+    <para>
+     PHP 5 tie¾ predstavuje triedy a metódy abstract. Metóda abstract deklaruje
+     iba signatúru metódy a neposkytuje implementáciu.
+     Trieda, ktorá obsahuje metódy abstract musí by» deklarovaná ako
+     abstract.
+    </para>
+    <example>
+     <title>Príklad triedy Abstract</title>
+     <programlisting role="php">
+<![CDATA[
+<?php
+abstract class AbstractClass {
+    abstract public function test();
+}
+
+class ImplementedClass extends AbstractClass {
+    public function test() {
+        echo "ImplementedClass::test() volana.\n";
+    }
+}
+
+$o = new ImplementedClass;
+$o->test();
+?> 
+]]>
+     </programlisting>
+    </example>
+    <simpara>
+     Triedy Abstract nemô¾u by» in¹tanciované. Starý kód, ktorý nemá ¾iadne
+     u¾ívateµom definované triedy alebo funkcie nazvané 'abstract' by mal
+     be¾a» bez modifikácii.
+    </simpara>
+   </section> 
+   
+   <section id='migration.oop.interfaces'>
+    <title>Rozhrania</title>
+    <para>
+     PHP 5 predstavuje rozhrania. Trieda mô¾e implementova» µubovoµný zoznam 
+     rozhraní.
+    </para>
+    <example>
+     <title>Príklad rozhrania</title>
+     <programlisting role="php">
+<![CDATA[
+<?php
+interface Throwable {
+    public function getMessage();
+}
+
+class MyException implements Throwable {
+    public function getMessage() {
+        // ...
+    }
+}
+?> 
+]]>
+      </programlisting>
+    </example>
+    <simpara>
+     Starý kód, ktorý nemá ¾iadne u¾ívateµom definované triedy alebo funkcie nazvané
+    'interface'alebo 'implements' by mal be¾a» bez modifikácii. 
+    </simpara>
+   </section>
+
+   <section id='migration.oop.typehints'>
+    <title>Typové Hinty triedy</title>
+    <para>
+     PHP 5, stále voµne typové, predstavuje schopnos» pou¾i» Typové hinty triedy
+     na deklarovanie oèakávanej triedy objektov, ktoré sú poslané metóde
+     ako parametre.
+    </para>
+    <example>
+     <title>Príklad Typového hintu triedy</title>
+     <programlisting role="php">
+<![CDATA[
+<?php
+interface Foo {
+    function a(Foo $foo);
+}
+
+interface Bar {
+    function b(Bar $bar);
+}
+
+class FooBar implements Foo, Bar {
+    function a(Foo $foo) {
+        // ...
+    }
+
+    function b(Bar $bar) {
+        // ...
+    }
+}
+
+$a = new FooBar;
+$b = new FooBar;
+
+$a->a($b);
+$a->b($b);
+?>
+]]>
+      </programlisting>
+    </example>
+    <simpara>
+     Teto typové hinty triedy sa nekontrolujú poèas kompilácie, ako by to bolo
+     v prípade typových jazykov, ale poèas runtime. To znamená, ¾e: 
+    </simpara>
+    <informalexample>
+     <programlisting role="php">
+<![CDATA[
+<?php
+function foo(ClassName $object) {
+    // ...
+}
+?>
+]]>
+      </programlisting>
+    </informalexample>
+    <simpara>je zhodné s:</simpara>
+    <informalexample>
+      <programlisting role="php">
+<![CDATA[
+<?php
+function foo($object) {
+    if (!($object instanceof ClassName)) {
+        die("Argument 1 musi byt instanciou ClassName");
+    }
+}
+?>
+]]>
+      </programlisting>
+    </informalexample>
+   </section>
+
+   <section id='migration5.oop.final'>
+    <title>final</title>
+    <para>
+     PHP 5 predstavuje kµúèové slovo "final" na deklarovanie èlenov a metód
+     final. Metódy a èlenovia deklarovavý ako final sa nemô¾u pre»a¾i»
+     sub-triedami.
+    </para>
+    <example>
+     <title>Metóda final</title>
+     <programlisting role="php">
+<![CDATA[
+<?php
+class Foo {
+    final function bar() {
+        // ...
+    }
+}
+?>
+]]>
+     </programlisting>
+    </example>
+    <para>
+     Ba èo viac, je mo¾né vytvori» triedy final. Toto zabraòuje triede by»
+     ¹pecializovanou (nemô¾e by» zdedená inou triedou). Nie je nutné
+     samotné metódy triedy final deklarova» ako final.
+    </para>
+    <example>
+     <title>trieda final</title>
+     <programlisting role="php">
+<![CDATA[
+<?php
+final class Foo {
+    // definicia triedy
+}
+
+// nasledujuci riadok nie je mozny
+// class Bork extends Foo {}
+?>
+]]>
+     </programlisting>
+    </example>
+    <para>
+     Vlastnosti nemô¾u by» final-ne.
+    </para>
+    <para>
+     Starý kód, ktorý nemal ¾iadne u¾ívateµom definované triedy alebo funkcie nazvané
+     'final' by mal be¾a» bez modifikácii.
+    </para>
+   </section>
+
+   <section id='migration5.oop.cloning'>
+    <title>Klonovanie objektov</title>
+    <para>
+     PHP 4 neponúkalo ¾iadny spôsob, akým by u¾ívateµ mohol rozhodnú», ktorý
+     kopírovací con¹truktor spusti» pri zdvojení objketu. Poèas duplikácie,
+     PHP 4 kopírovalo bit po bite tvoriac tak identickú repliku v¹etkých
+     vlastností objektu.
+    </para>
+    <para>
+     Tvorba kópie objektu s plne replikovaými vlastnos»ami nie je v¾dy
+     ¾iadaným správaním. Dobrým príkladom potreby kopírovaích kon¹truktorov
+     je, ak máte objekt, ktorý reprezentuje GTK okno a objekt dr¾í zdroj
+     tohto GTK okna, keï vytvárate duplikát, mô¾ete chcie» vytvori» nové
+     okno s rovnakými vlastnos»ami a ma» nový objekt, ktorý dr¾í zdroj
+     nového okna. Ïal¹ím príkladom je, ak vá¹ objekt dr¾í odkaz na ïal¹í
+     objekt, ktorý on pou¾íva a keï replikujete rodièovský objekt, chcete
+     vytvori» novú in¹tanciu tohto druhého objektu, tak¾e replika má svoju
+     vlastnú oddelenú kópiu.
+    </para>
+    <para>
+     Kópia objektu je vytvorená pomocou kµúèového slova clone (ktoré volá, ak je
+     to mo¾né, metódu <function>__clone</function> objektu). Metóda 
+     <function>__clone</function> objetku sa nedá vola» priamo. 
+    </para>
+    <para>
+     Keï developer ¾iada vytvorenie novej kópiu objektu, PHP 5 skontroluje, èi
+     bola metóda <function>__clone</function> definovaná alebo nie. Ak nie,
+     zavolá východziu __clone(), ktorá skopíruje v¹etky vlastnosti objektu.
+     Ak bola metóda <function>__clone</function> definované, potom bude
+     zodpovedná za nastavenie nutných vlastností vo vytvorenom objekte.
+     Engine vhodne dodá funkciu, ktorá importuje v¹etky vlastnosti zo zdrojového
+     objektu, tak¾e mô¾u zaèa» s by-value replikou zdrojového objektu a
+     prelomi» vlastnosti, ktoré sa musia zmeni».
+    </para>
+    <example>
+     <title>Klonovanie objektov</title>
+     <programlisting role="php">
+<![CDATA[
+<?php
+class MyCloneable {
+    static $id = 0;
+
+    function MyCloneable() {
+        $this->id = self::$id++;
+    }
+
+    function __clone() {
+        $this->address = "New York";
+        $this->id = self::$id++;
+    }
+}
+
+$obj = new MyCloneable();
+
+$obj->name = "Hello";
+$obj->address = "Tel-Aviv";
+
+print $obj->id . "\n";
+
+$obj_cloned = clone $obj;
+
+print $obj_cloned->id . "\n";
+print $obj_cloned->name . "\n";
+print $obj_cloned->address . "\n";
+?>
+]]>
+     </programlisting>
+    </example>
+   </section>
+
+   <section id='migration5.oop.constructors'>
+    <title>Kon¹truktory</title>
+    <para>
+     PHP 5 umo¾òuje developerom deklarova» metódy kon¹truktora pre triedy.
+     Triedy, ktoré majú metódu kon¹truktora, volajú túto metódu pri ka¾dom
+     novo-vytvorenom objekte, tak¾e je vhodná pre akúkoµvek incializáciu, ktorú
+     objekt mô¾e potrebova» pred tým, ne¾ je je pou¾itý.
+    </para>
+    <para>
+     V PHP 4 metódy kon¹truktora boli metódy triedy, ktoré mali rovnaký názov ako
+     trieda samotná. Nakoµko je veµmi be¾né vola» rodièovský kon¹truktor
+     z odvodených tried, spôsob, ako PHP 4 fungovalo, bol tro¹ka krkolomý na presúvanie 
+     tried vo veµkej hierarchii tried. Ak sa trieda presunula pod iného rodièa,
+     názov kon¹truktora toho rodièa sa zmení tie¾ a kód v odvodenej triede,
+     ktorá volá rodièovského kon¹truktora, sa tie¾ zmenil.
+    </para>
+    <para>
+     PHP 5 predstavuje ¹tandardný spôsob deklarovania metód kon¹truktora ich
+     volaním pomocou názvu <function>__construct</function>.
+    </para>
+    <example>
+     <title>Pou¾ívanie novo unifikovaných kon¹truktorov</title>
+     <programlisting role="php">
+<![CDATA[
+<?php
+class BaseClass {
+    function __construct() {
+        print "Konstruktor v BaseClass\n";
+    }
+}
+
+class SubClass extends BaseClass {
+    function __construct() {
+        parent::__construct();
+        print "Konstruktor v SubClass\n";
+    }
+}
+
+$obj = new BaseClass();
+$obj = new SubClass();
+?> 
+]]>
+     </programlisting>
+    </example>
+    <para>
+     Kvôli spätnej kompatibilite, ak PHP 5 nedokáte nájs» funkciu 
+     <function>__construct</function> pre danú triedu, vyhµadá funkciu
+     kon¹truktora starého ¹týlu, podµa názvu triedy. Z hµadiska efektivity
+     to znamená, ¾e jediný prípad, ktorý by mal problémy kompatibility je, 
+     ak trieda nemala metódu nazvanú 
+     <function>__construct</function>, èo bolo pou¾ité pre odli¹nú sémantiku.
+    </para>
+   </section>
+
+   <section id='migration5.oop.destructors'>
+    <title>De¹truktory</title>
+    <para>
+     Ma» schopnos» definova» de¹truktory pre objekty mô¾e by» veµmi u¾itoèné.
+     De¹truktory doká¾u sledova» správy pre ladenie, zatvára» databázové spojenia
+     a robi» iné èistiace práce. V PHP 4 neexistoval ¾iadny mechanizmus pre de¹truktory
+     objektov, i keï PHP u¾ malo podporu pre registrovanie funkcii, ktoré sa malo spusti»
+     pri po¾adovanom vypnutí.
+    </para>
+    <para>
+     PHP 5 predstavuje koncept de¹truktorov podobný tomu v iných objektovo
+     orientovaných jazykoch, ako je Java: Ak sa znièí posledný odkaz na
+     objekt, zavolá sa de¹truktor objektu, ktorý je metódou triedy nazvanou
+     <function>__destruct</function>, ktorá neprijíma ¾iadne parametre,
+     pred tým, ne¾ sa objekt uvoµní z pamäte.
+    </para>
+    <example>
+     <title>Destructor</title>
+     <programlisting role="php">
+<![CDATA[
+<?php
+class MyDestructableClass {
+    function __construct() {
+        print "V konstruktore\n";
+        $this->name = "MyDestructableClass";
+    }
+
+    function __destruct() {
+        print "Destrukcia " . $this->name . "\n";
+    }
+}
+
+$obj = new MyDestructableClass();
+?> 
+]]>
+     </programlisting>
+    </example>
+    <para>
+     Podobne ako kon¹truktory, rodièovské de¹truktory nebudú volané implicitne
+     engine-om. Aby sa pustil rodièovský de¹truktor, musí sa explicitne zavola»
+     <function>parent::__destruct</function> v tele de¹truktora.
+    </para>
+   </section>
+
+   <section id='migration5.oop.constants'>
+    <title>Kon¹tanty</title>
+    <para>
+     PHP 5 predstavujes triedne kon¹tanty:
+    </para>
+    <example>
+     <title>Príklad kon¹tanty triedy</title>
+     <programlisting role="php">
+<![CDATA[
+<?php
+class Foo {
+    const constant = "constant";
+}
+
+echo "Foo::constant = " . Foo::constant . "\n";
+?> 
+]]>
+     </programlisting>
+    </example>
+    <simpara>
+     Starý kód, ktorý nemá ¾iadne u¾ívateµom definované triedy alebo fukcie nazvané 'const'
+     bude be¾a» bez modifikácii.
+    </simpara>
+   </section>
+   
+   <section id='migration5.oop.exceptions'>
+    <title>Výnimky</title>
+    <para>
+     PHP 4 nemalo ¾iadne riadenie výnimiek. PHP 5 predstavuje model výnimiek
+     podobný tomu v iných programovacích jazykoch. Pozor na fakt, ¾e existuje
+     podpora pre "catch all", ale nie pre klazulu "finally".
+    </para>
+    <para>
+     Výnimky sa dajú viackrát thrown-ú» v catch blokoch. Tie¾ je mo¾né ma»
+     viacnásobné catch bloky. V takom prípade sa zachytená výnimka porovná s
+     typom triedy ka¾dého catch bloku od hora na dol a prvý blok, ktorý sa
+     zhoduje s 'instanceof', sa spracuje. Keï sa catch blok ukonèí, spracovanie
+     pokraèuje na konci posledného catch bloku. Ak sa ¾iadny catch blok
+     nezhoduje s 'instanceof', potom sa hµadá ïal¹í try/catch blok a¾
+     pokiaµ ïal¹ie try/catch bloky nie sú dostupné. V takom prípade
+     je výnimka nezachytenou výnimkou a program sa ukonèí zobrazením
+     výnimky.
+    </para>
+    <example>
+     <title>Príklad tvorby výnimky</title>
+     <programlisting role="php">
+<![CDATA[
+<?php
+try {
+   throw new Exception('Ahoj');
+}
+catch (Exception $exception) {
+   echo $exception;
+}
+?>
+]]>
+     </programlisting>
+    </example>
+    <simpara>
+     Starý kód, ktorý nemá ¾iadne u¾ívateµom definované triedy alebo funkcie 'catch',
+     'throw' a 'try' bude be¾a» bez modifikácii.
+    </simpara>
+   </section>
+    
+   <section id='migration5.oop.dereferencing'>
+    <title>Dereferencovanie objektov vratených z funkcií</title>
+    <para>
+     V PHP 4 nebolo mo¾né dereferencova» objekty vrátené funkciami a urobi»
+     ïal¹ie volania metódy na tieto objekty. S PHP 5 je mo¾né následujúce:
+    </para> 
+    <example>
+     <title>Príklad dereferencie</title>
+     <programlisting role="php">
+<![CDATA[
+<?php
+class Circle {
+    function draw() {
+        print "Kruh\n";
+    }
+}
+      
+class Square {
+    function draw() {
+        print "Stvorec\n";
+    }
+}
+
+function ShapeFactoryMethod($shape) {
+    switch ($shape) {
+        case "Circle":
+            return new Circle();
+        case "Square":
+            return new Square();
+    }
+}
+
+ShapeFactoryMethod("Circle")->draw();
+ShapeFactoryMethod("Square")->draw();
+?> 
+]]>
+     </programlisting>
+    </example>
+   </section>
+
+   <section id='migration5.oop.staticinit'>
+    <title>Inicializácia premenných statických èlenov</title>
+    <para>
+     Premenné statických èlenov statických tried sa mô¾u teraz inicializova».
+    </para>
+    <example>
+     <title>Príklad inicializácie premennej Static</title>
+     <programlisting role="php">
+<![CDATA[
+<?php
+class foo {
+    static $my_static = 5;
+    public $my_prop = 'bla';
+}
+
+print foo::$my_static;
+$obj = new foo;
+print $obj->my_prop;
+?>
+]]>
+     </programlisting>
+    </example>
+   </section>
+
+   <section id='migration5.oop.staticmethods'>
+    <title>Metódy Static</title>
+    <para>
+     PHP 5 predstavuje kµúèové slovo 'static' na deklaráciu statický metód,
+     teda volateµných mimo kontextu objektu.
+    </para>
+    <example>
+     <title>Príklad metód Static</title>
+     <programlisting role="php">
+<![CDATA[
+<?php
+class Foo {
+    public static function aStaticMethod() {
+        // ...
+    }
+}
+
+Foo::aStaticMethod();
+?>
+]]>
+     </programlisting>
+    </example>
+    <para>
+     Pseudo premenná $this nie je dostupná vo vnútri metódy, ktorá bola
+     deklarovaná ako static.
+    </para>
+   </section>
+
+   <section id='migration5.oop.instanceof'>
+    <title>instanceof</title>
+    <para>
+     PHP 5 predstavuje kµúèové slovo <literal>instanceof</literal>, ktoré 
+     vám umo¾òuje zisti», èi objekt je alebo nie je in¹tanciou triedy,
+     alebo èi roz¹iruje triedu alebo implementuje rozhranie.
+    </para>
+    <example>
+     <title>Príklad <literal>instanceof</literal></title>
+     <programlisting role="php">
+<![CDATA[
+<?php
+class baseClass { }
+
+$a = new baseClass;
+
+if ($a instanceof baseClass) {
+    echo "Hello World";
+}
+?>
+]]>
+     </programlisting>
+    </example>
+   </section>
+   
+   <section id='migration5.oop.staticvars'>
+    <title>Static function variables</title>
+    <para>
+     Static-y sa teraz spracovávajú poèas kompilácie, èo developer umo¾òuje
+     priradi» premenné k static-om pomocou referencie. Táto zmena veµkolepo
+     zlep¹uje ich výkon, ale znamená, ¾e nepriame odkazy na static-y
+     nebude viac fungova».
+    </para>
+   </section>
+
+   <section id='migration5.oop.refparams'>
+    <title>Parametre poslané referenciou</title>
+    <para>
+     Parametre, ktoré sú poslané referenciou funkcii mô¾u teraz ma»
+     východzie hodnoty
+    </para>
+    <example>
+     <title />
+     <programlisting role="php">
+<![CDATA[
+<?php
+function my_function(&$var = null) {
+    if ($var === null) {
+        die("$var musí mat hodnotu");
+    }
+}
+?>
+]]>
+     </programlisting>
+    </example>
+   </section>
+
+   <section id='migration5.oop.autoload'>
+    <title><function>__autoload</function></title>
+    <para>
+     Zachytávacia funkcia <function>__autoload</function> bude automaticky 
+     volaná, keï sa má nedeklarovaná trieda in¹tanciova». Názov tejto triedy
+     sa po¹le zachytávacej funkcii <function>__autoload</function>
+     ako jej jediný argument.
+    </para>
+    <example>
+     <title>Príklad <function>__autoload</function></title>
+     <programlisting role="php">
+<![CDATA[
+<?php
+function __autoload($className) {
+    include_once $className . ".php";
+}
+
+$object = new ClassName;
+?>
+]]>
+     </programlisting>
+    </example>
+   </section>
+    
+    <section id='migration5.oop.overload'>
+     <title>Pre»a¾iteµné volania metód a prístupy vlastností</title>
+     <para>
+      Obe, volania metód a prístupy vlastností sa dajú pre»a¾i» cez metódy
+      <function>__call</function>, <function>__get</function> a
+      <function>__set</function>. 
+     </para>
+     <example>
+      <title>
+       <function>__get</function> a
+       <function>__set</function>
+      </title>
+      <programlisting role="php">
+<![CDATA[
+<?php
+class Setter {
+    public $n;
+    public $x = array("a" => 1, "b" => 2, "c" => 3);
+
+    function __get($nm) {
+        print "Ziskanie [$nm]\n";
+
+        if (isset($this->x[$nm])) {
+            $r = $this->x[$nm];
+            print "Vratenie: $r\n";
+            return $r;
+        } else {
+            print "Nic!\n";
+        }
+    }
+
+    function __set($nm, $val) {
+        print "Nastanie [$nm] na $val\n";
+
+        if (isset($this->x[$nm])) {
+            $this->x[$nm] = $val;
+            print "OK!\n";
+        } else {
+            print "Nie OK!\n";
+        }
+    }
+}
+
+
+$foo = new Setter();
+$foo->n = 1;
+$foo->a = 100;
+$foo->a++;
+$foo->z++;
+var_dump($foo);
+?>
+]]>
+     </programlisting>
+    </example>
+    <example>
+     <title>Príklad <function>__get</function></title>
+     <programlisting role="php">
+<![CDATA[
+<?php
+class Caller {
+    private $x = array(1, 2, 3);
+
+    function __call($m, $a) {
+        print "Metoda $m volala:\n";
+        var_dump($a);
+        return $this->x;
+    }
+}
+
+$foo = new Caller();
+$a = $foo->test(1, "2", 3.4, true);
+var_dump($a);
+?>
+]]>
+     </programlisting>
+    </example>
+   </section>   
+
+   <section id='migration5.oop.iteration'>
+    <title>Iterácia</title>
+    <para>
+     Objekty sa mô¾u iterova» spôsobom pre»a¾enia, pri pou¾ití s foreach. Východzie
+     správanie je iterova» cez v¹etky vlastnosti.
+    </para>
+    <example>
+     <title>Príklad iterácie objektu</title>
+     <programlisting role="php">
+<![CDATA[
+<?php
+class Foo {
+    public $x = 1;
+    public $y = 2;
+}
+
+$obj = new Foo;
+
+foreach ($obj as $prp_name => $prop_value) {
+    // pomocou vlastnosti
+}
+?> 
+]]>
+     </programlisting>
+    </example>
+    <para>
+     Ka¾dá trieda, ktorej in¹tancie sa dajú iterova» s foreach by mala implementova»
+     prázdne rozhranie <literal>Traversable</literal>. Teda ka¾dý objekt, ktorý
+     hovorí, ¾e implementuje <literal>Traversable</literal> sa mô¾e pou¾i» s foreach. 
+    </para>
+    <para>
+     Rozhrania <literal>IteratorAggregate</literal> a <literal>Iterator</literal>
+     vám umo¾òujú urèi» ako sa objekty triedy iterujú v PHP kóde. Prvý z nich
+     má metódu <function>getIterator</function>, ktorá musí vráti»
+     pole alebo objekt, ktorý buï implementuje rozhranie 
+     <literal>Iterator</literal> alebo je in¹taniciovaný z internej
+     triedy, ktorá mô¾e by» iterovaná
+    </para>
+    <example>
+     <title>Príklad tvorby Iterátora</title>
+     <programlisting role="php">
+<![CDATA[
+<?php
+class ObjectIterator implements Iterator {
+
+    private $obj;
+    private $num;
+
+    function __construct($obj) {
+        $this->obj = $obj;
+    }
+    function rewind() {
+        $this->num = 0;
+    }
+    function valid() {
+        return $this->num < $this->obj->max;
+    }
+    function key() {
+        return $this->num;
+    }
+    function current() {
+        switch($this->num) {
+            case 0: return "1.";
+            case 1: return "2.";
+            case 2: return "3.";
+            default: return $this->num.".";
+        }
+    }
+    function next() {
+        $this->num++;
+    }
+}
+
+class Object implements IteratorAggregate {
+
+    public $max = 3;
+
+    function getIterator() {
+        return new ObjectIterator($this);
+    }
+}
+
+$obj = new Object;
+
+// tento foreach ...
+foreach($obj as $key => $val) {
+    echo "$key = $val\n";
+}
+
+// sa zhoduje s nasledujucimi 7 riadkami s direktivou for.
+$it = $obj->getIterator();
+for($it->rewind(); $it->valid(); $it->next()) {
+    $key = $it->current();
+       $val = $it->key();
+          echo "$key = $val\n";
+}
+unset($it);
+?>
+]]>
+     </programlisting>
+    </example>
+   </section>
+    
+   <section id='migrating5.oop.methodconst'>
+    <title>Kon¹tanta <literal>__METHOD__</literal></title>
+    <para>
+     Nová pseudo kon¹tanta <literal>__METHOD__</literal> ukazuje aktuálnu
+     triedu a metódu, keï sa pou¾ije vo vnútri metódy a funkciu, keï sa pou¾ije
+     mimo triedu.
+    </para>
+    <example>
+     <title>Príklad pou¾itia <literal>__METHOD__</literal></title>
+     <programlisting role="php">
+<![CDATA[
+<?php
+class Foo {
+    function show() {
+        echo __METHOD__;
+    }
+}
+
+class Bar extends Foo {
+}
+
+Foo::show(); // posiela na vystup Foo::show
+Bar::show(); // posiela na vystup Foo::show pretoze __METHOD__ je
+             // token vyhodnoteny pocas kompilacie
+
+function test() {
+    echo __METHOD__;
+}
+
+test();      // posiela na vystup test
+?>
+]]>
+     </programlisting>
+    </example>
+   </section>
+  
+   <section id='migrating5.oop.tostring'>
+    <title>Metóda <function>__toString</function></title>
+    <para>
+     Nová zázraèná metóda <function>__toString</function> vám umo¾òuje
+     pre»a¾i» objekt na konverziu re»azca.
+    </para>
+    <example>
+     <title>Príklad <function>__toString</function></title>
+     <programlisting role="php">
+<![CDATA[
+<?php
+class Foo {
+    function __toString() {
+        return "Cokolvek";
+    }
+}
+
+$obj = new Foo;
+
+echo $obj; // volaj __toString()
+?> 
+]]>
+     </programlisting>
+    </example>
+   </section>
+
+   <section id='migrating5.oop.reflection'>
+    <title>Reflexné API</title>
+    <para>
+     PHP 5 prichádza s kompletnou API reflexiou, ktorá pridáva schopnos»
+     tvorbu-opanèných tried, rozhraní, funkcíí a metód ronvako ako
+     roz¹írení.
+    </para>
+    <para>
+     Reflexné API tie¾ ponúkajú získanie doc komentárov pre funkcie,
+     triedy a metódy. 
+    </para>
+    <para>
+     Takmer v¹etky aspekty objektovo orientovaného kódu sa dajú reflektova» pomocou
+     reflexného API, ktoré je
+     <ulink url="http://sitten-polizei.de/php/reflection_api/docs/language.reflection.html">
+     zdokumentované oddelene</ulink>.
+    </para>
+    <example>
+     <title>Príklad pou¾ita reflexného API</title>
+     <programlisting role="php">
+<![CDATA[
+<?php
+class Foo {
+    public $prop;
+    function Func($name) {
+        echo "Ahoj $name";
+    }
+}
+
+reflectionClass::export('Foo');
+reflectionObject::export(new Foo);
+reflectionMethod::export('Foo', 'func');
+reflectionProperty::export('Foo', 'prop');
+reflectionExtension::export('standard');
+?> 
+]]>
+     </programlisting>
+    </example>
+   </section>
+
+  </section>
+
+  <section id='migrating5.errorrep'>
+   <title>Error Reporting</title>
+   <para>
+    Poèínajúc PHP 5 bol predstavená nová ko¹tanta hlásenia chýb E_STRICT s
+    hodnotou 2048. Umo¾òuje run-time PHP návrhy ohµadom interoperaènosti
+    a kompatibility vá¹ho kódu, èo vám pomô¾e dodr¾a» najnov¹ie
+    a najveµkolepej¹ie navrhované metódy kódovania. Napr. správa STRICT
+    vás bude varova» na pou¾itie odmietaných funkcií.
    </para>
+   <note>
+    <simpara>
+     E_ALL nezahàòa E_STRICT, tak¾e defaultne nie je povolená
+    </simpara>
+   </note>
   </section>
 
  </appendix>