cvs: phpdoc-nl /appendices migration5.xml

[email protected] ("Derick Rethans")
Newsgroups php.doc.nl
Message-ID <cvsderick1083655183@cvsserver>
derick		Tue May  4 03:19:43 2004 EDT

  Added files:                 
    /phpdoc-nl/appendices	migration5.xml 
  Log:
  - Added translation of the migrating chapter to Dutch (by Sven Hermans)
derick-20040504031943.txt (text/plain, 22.9 KB)
http://cvs.php.net/co.php/phpdoc-nl/appendices/migration5.xml?r=1.1&p=1
Index: phpdoc-nl/appendices/migration5.xml
+++ phpdoc-nl/appendices/migration5.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- EN-Revision: 1.15 Maintainer: derick Status: ready -->
 <appendix id="migration5">
  <title>Migreren van PHP 4 naar PHP 5</title>

  <section id="migration5.changes">
   <title>Wat is er veranderd in PHP 5</title>
   <para>
    PHP 5 en de geïntegreerde Zend Engine 2 hebben PHP's prestaties en
    mogelijkheden enorm verbeterd, en grote inspanningen zijn geleverd om zo
    weinig mogelijk bestaande PHP code te breken. Dus je code migreren van PHP
    4 naar 5 zou heel gemakkelijk moeten zijn. De meeste bestaande PHP 4 code
    zou klaar zijn om te runnen zonder veranderingen, maar je kan best de 
    <link linkend="migration5.incompatible">kleine verschillen</link> kennen en
    zorg dragen om je code te testen voordat je van versies verandert naar 
    productie omgevingen.
   </para>
  </section>

  <section id="migration5.incompatible">
   <title>Terugwaardse Incompatibiliteit Veranderingen</title>
   <para>
    Ondanks de meeste bestaande PHP 4 code zou moeten werken zonder
    veranderingen, kan je best aandacht besteden aan volgende terugwaardse
    incompatibiliteit veranderingen:
   </para>
   <itemizedlist>
   <listitem><simpara>
      <function>strrpos</function> en <function>strripos</function> gebruiken
      nu de hele string als een needle.
    </simpara></listitem>
    <listitem><simpara>
      Illegaal gebruik van deze string offsets veroorzaakt <constant>E_ERROR</constant> 
      in de plaats van <constant>E_WARNING</constant>.
    </simpara></listitem>
    <listitem><simpara>
      <function>array_merge</function> is veranderd om enkel arrays te
      aanvaarden. Als een niet-array variable wordt gepassed, zal een
      <constant>E_WARNING</constant> geworpen worden voor elk zo'n parameter.
      Wees voorzichtig omdat je code <constant>E_WARNING</constant> kan geven uit 
      het niets.
    </simpara></listitem>
    <listitem><simpara>
     PATH_TRANSLATED server variabele wordt niet langer uitdrukkelijk geset
     onder Apache2 SAPI in kontrast met de situatie in PHP 4, waar het is
     geset naar dezelfde waarde als de SCRIPT_FILENAME server variable wanneer
     het niet populated wordt door Apache. Deze verandering is doorgevoerd om
     to overeen te stemmen  met de 
     <ulink url="&amp;url.cgispecs;">CGI specificatie</ulink>.
     Refereer a.u.b naar <ulink url="&amp;url.php.bugs;23610">bug #23610</ulink> 
     voor meer informatie.
    </simpara></listitem>
    <listitem><simpara>
     De <constant>T_ML_CONSTANT</constant> constant is niet langer
     gedefinieerd door de <link linkend="ref.tokenizer">Tokenizer</link> 
     extensie. Als error_reporting is geset op <constant>E_ALL</constant>, zal
     PHP een notice genereren. Hoewel de 
     <constant>T_ML_CONSTANT</constant> nooit werd gebruikt, was het
     gedefinieerd in PHP 4. In zowel PHP 4 en PHP 5 worden // en /* */ omgezet
     als de <constant>T_COMMENT</constant> constant. 
     Niettemin PHPDoc stijl comments /** */ , die vanaf PHP 5 worden geparsed
     door PHP, herkend worden als <constant>T_DOC_COMMENT</constant>. 
    </simpara></listitem>
    <listitem><simpara>
      $_SERVER zou nooit bezaaid mogen worden met argc en argv als 
      <link linkend="ini.variables-order">variables_order</link> "S" bezit. 
      Als je een systeem hebt dat specifiek geconfigureerd is om geen $_SERVER 
      te maken, dan moet het er uiteraard niet zijn. De verandering was om 
      argc en argv altijd beschikbaar te maken in de CLI versie onafhankelijk
      van de <link linkend="ini.variables-order">variables_order</link>
      setting. Gelijkaardig, zal de CLI versie nu altijd bezaaid worden met
      de globale $argc en $argv variabelen.
    </simpara></listitem>
    <listitem><simpara>
      Een object met geen properties wordt niet langer beschouwd als 
      &quot;empty&quot;.
    </simpara></listitem>
    <listitem><simpara>
      Classes moeten gedeclareerd worden voor gebruik.
    </simpara></listitem>
   </itemizedlist>
   <para>
    <example>
     <title><function>strrpos</function> en <function>strripos</function>
     gebruiken nu de gehele string als naald.</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>Een object zonder properties wordt niet langer beschouwd als
     "empty".</title>
     <programlisting role="php">
<![CDATA[
<?php
class test { }
$t = new test();

var_dump(empty($t)); // echo bool(false)

if (!$t) {
    // Will be executed
}
?>

]]>
     </programlisting>
    </example>
   </para>
   <para>
    Het volgende voorbeeld was geldig in PHP 4, maar in PHP 5 zal het een
    fatal error produceren.
   </para>
   <para>
    <example>
     <title>Classes moeten gedeclareerd worden voor gebruik</title>
     <programlisting role="php">
<![CDATA[
<?php
$test = new fubar();
$test->barfu();

class fubar {
    function barfu() {
        echo 'fubar';
    }
}
?>
]]>
     </programlisting>
    </example>
   </para>
  </section>

  <section id="migration5.cli-cgi">
   <title>CLI en CGI</title>
   <para>
    In PHP 5 waren er enkele veranderingen in de CLI en CGI bestandsnamen. In
    PHP 5, werd de CGI versie hernoemd naar <literal>php-cgi.exe</literal>
    (vroeger <literal>php.exe</literal>) en de CLI versie zit nu in de main
    directory (vroeger <literal>cli/php.exe</literal>).
   </para>
   <para>
    In PHP 5 werd er ook een nieuwe mode geintroduceerd:
    <literal>php-win.exe</literal>. Dit is gelijk aan de CLI versie, behalve
    dat php-win niets output en dus geen console voorziet (er komt geen 
    "dos box" op het scherm). Dit gedrag is gelijkaardig aan php-gtk.
   </para>
   <para>
    In PHP 5, zal de CLI versie altijd de globale $argv en $argc bezaaien.
   </para>
  </section>

  <section id="migration5.configuration">
   <title>Configuratie Files migreren</title>
   <para>
    Sinds de ISAPI modules hun namen zijn veranderd, van php4xxx naar php5xxx,
    moet je enkele wijzigingen aanbrengen in de configuratiebestanden. Er
    waren ook veranderingen in de CLI en CGI bestandsnamen. Refereer naar de
    <link linkend="migration5.cli-cgi">bijhorende sectie</link> voor meer
    informatie.
  </para>
   <para>
    De Apache configuratie migreren is heel gemakkelijk. Bekijk het voorbeeld
    onderaan om te weten welke wijzigingen je moet doen:
    <informalexample>
     <programlisting role="apache-conf">
<![CDATA[
# verander deze lijn:    
LoadModule php4_module /php/sapi/php4apache2.dll

# met deze:
LoadModule php5_module /php/php5apache2.dll
]]>
     </programlisting>
    </informalexample>
   </para>
   <para>
    Als je webserver PHP runt in CGI mode, merk dan op dat de CGI versie haar
    naam is veranderd van php.exe naar php-cgi.exe.
    In Apache zou je iets moeten doen als dit:
    <informalexample>
     <programlisting role="apache-conf">
<![CDATA[
# verander deze lijn:    
Action application/x-httpd-php "/php/php.exe" 

# met deze:
Action application/x-httpd-php "/php/php-cgi.exe" 
]]>
     </programlisting>
    </informalexample>
   </para>
   <para>
    Bij andere webservers moet je ofwel de CGI of ISAPI module bestandsnamen
    veranderen.
   </para>
  </section>

  <section id="migration5.functions">
   <title>Nieuwe Functies</title>
   <para>
    In PHP 5 zijn er enkele nieuwe functies. Hier is er een lijst van:
   </para>
   <para>Arrays:</para>
    <itemizedlist>
    <listitem><simpara>
      <function>array_combine</function> - Creeert een array door een array
      voor keys te gebruiken en een andere voor zijn waarde.
    </simpara></listitem>
    <listitem><simpara>
      <function>array_diff_uassoc</function> - Berekent het verschil van
      arrays met een toegevoegde index check die wordt uitgevoerd door een
      gebruiker opgegeven callback functie.
    </simpara></listitem>
    <listitem><simpara>
      <function>array_udiff</function> - Berekent het verschil van arrays door
      een callback functie te gebruiken voor data vergelijking.
    </simpara></listitem>
    <listitem><simpara>
      <function>array_udiff_assoc</function> - Berekent het verschil van
      arrays met toegevoegde index check. De data wordt vergeleken door een
      callback functie te gebruiken.
    </simpara></listitem>
    <listitem><simpara>
      <function>array_udiff_uassoc</function> - Berekent het verschil van
      arrays met toegevoegde index check. De data wordt vergeleken door een
      callback functie te gebruiken. De index check wordt ook gedaan door een
      callback functie.
    </simpara></listitem>
    <listitem><simpara>
      <function>array_walk_recursive</function> - Pas een user functie
      recursief toe op elke member van een array.
    </simpara></listitem>
   </itemizedlist>

   <para>InterBase:</para>
   <itemizedlist>
    <listitem><simpara>
      <function>ibase_affected_rows</function> - Return het aantal rijen die
      beinvloed waren door de voorgaande query.
    </simpara></listitem>
    <listitem><simpara>
      <function>ibase_backup</function> - Initialiseer een backup taak in de
      service manager en return onmiddellijk.
    </simpara></listitem>
    <listitem><simpara>
      <function>ibase_commit_ret</function> - Commit a transaction without
      closing it
    </simpara></listitem>
    <listitem><simpara>
      <function>ibase_db_info</function> - Vraag statistieken op over een
      database.
    </simpara></listitem>
    <listitem><simpara>
      <function>ibase_drop_db</function> - Drop een database.
    </simpara></listitem>
    <listitem><simpara>
      <function>ibase_errcode</function> - Return een error code.
    </simpara></listitem>
    <listitem><simpara>
      <function>ibase_free_event_handler</function> - Annuleer een
      geregistreerde event handler.
    </simpara></listitem>
    <listitem><simpara>
      <function>ibase_gen_id</function> - Verhoog de named generator en return
      zijn nieuwe waarde.
    </simpara></listitem>
    <listitem><simpara>
      <function>ibase_maintain_db</function> - Voer een onderhoud commando uit
      op de database server.
    </simpara></listitem>
    <listitem><simpara>
      <function>ibase_name_result</function> - Wijs een naam toe aan een
      result set.
    </simpara></listitem>
    <listitem><simpara>
      <function>ibase_num_params</function> - Return het aantal parameters in
      een voorbereide query.
    </simpara></listitem>
    <listitem><simpara>
      <function>ibase_param_info</function> - Return informatie over een
      parameter in een voorbereide query.
    </simpara></listitem>
    <listitem><simpara>
      <function>ibase_restore</function> - Initieer een restore taak in de
      service manager en return onmiddellijk.
    </simpara></listitem>
    <listitem><simpara>
      <function>ibase_rollback_ret</function> - Rollback transactie en
      weerhoud de transactie context.
    </simpara></listitem>
    <listitem><simpara>
      <function>ibase_server_info</function> - Vraag statistieken op over een
      database.
    </simpara></listitem>
    <listitem><simpara>
      <function>ibase_service_attach</function> - Verbind met de service
      manager.
    </simpara></listitem>
    <listitem><simpara>
      <function>ibase_service_detach</function> - Verbreek de verbinding met
      de service manager.
    </simpara></listitem>
    <listitem><simpara>
      <function>ibase_set_event_handler</function> - Registreer een callback
      functie om aangeroepen te worden wanneer events worden gepost.
    </simpara></listitem>
    <listitem><simpara>
      <function>ibase_wait_event</function> - Wacht op een event om gepost te
      worden door de database.
    </simpara></listitem>
   </itemizedlist>

   <para>iconv:</para>
   <itemizedlist>
    <listitem><simpara>
      <function>iconv_mime_decode</function> - Decodeer een MIME header veld.
    </simpara></listitem>
    <listitem><simpara>
      <function>iconv_mime_decode_headers</function> - Decodeer meerdere MIME
      header velden in een keer.
    </simpara></listitem>
    <listitem><simpara>
      <function>iconv_mime_encode</function> - Stel een MIME header veld samen.
    </simpara></listitem>
    <listitem><simpara>
      <function>iconv_strlen</function> - Return het aantal karakters van
      string.
    </simpara></listitem>
    <listitem><simpara>
      <function>iconv_strpos</function> - Vind de positie van het eerste
      voorkomen van een naald in een hooiberg.
    </simpara></listitem>
    <listitem><simpara>
      <function>iconv_strrpos</function> - Vind het laatste voorkomen van een
      naald binnenin het opgegeven bereik van hooiberg.
    </simpara></listitem>
    <listitem><simpara>
      <function>iconv_substr</function> - Knip een stuk uit een string.
    </simpara></listitem>
   </itemizedlist>

   <para>Streams:</para>
   <itemizedlist>
    <listitem><simpara>
      <function>stream_copy_to_stream</function> - Kopieert data van de ene
      stream naar een andere
    </simpara></listitem>
    <listitem><simpara>
      <function>stream_get_line</function> - Neemt een lijn van een stream
      resource tot een gegeven delimiter
    </simpara></listitem>
    <listitem><simpara>
      <function>stream_socket_accept</function> - Aanvaard een verbinding op
      een socket gecreëerd door <function>stream_socket_server</function>
    </simpara></listitem>
    <listitem><simpara>
      <function>stream_socket_client</function> - Open Internet of Unix domein
      socket verbinding. 
    </simpara></listitem>
    <listitem><simpara>
      <function>stream_socket_get_name</function> - Achterhaal de naam van de
      lokale sockets of die op afstand
    </simpara></listitem>
    <listitem><simpara>
      <function>stream_socket_recvfrom</function> - Ontvangt data van een
      socket, verbonden of niet
    </simpara></listitem>
    <listitem><simpara>
      <function>stream_socket_sendto</function> - Stuur een bericht naar een
      socket, of het verbonden is of niet
    </simpara></listitem>
    <listitem><simpara>
      <function>stream_socket_server</function> - Creëer een Internet of Unix
      domein server socket
    </simpara></listitem>
   </itemizedlist>

   <para>Andere:</para>
   <itemizedlist>
    <listitem><simpara>
      <function>convert_uudecode</function> - 
      decode a uuencoded string
    </simpara></listitem>
    <listitem><simpara>
      <function>convert_uuencode</function> - uuencode een string
    </simpara></listitem>
    <listitem><simpara>
      <function>curl_copy_handle</function> - Kopieer een cURL handle samen
      met al z'n voorkeuren
    </simpara></listitem>
    <listitem><simpara>
      <function>dba_key_split</function> - Splits een key in een string
      representatie in een array representatie
    </simpara></listitem>
    <listitem><simpara>
      <function>dbase_get_header_info</function> - Neem de header info van een
      dBase database
    </simpara></listitem>
    <listitem><simpara>
      <function>dbx_fetch_row</function> - Fetcht rijen van een
      query-resultaat waarvan de DBX_RESULT_UNBUFFERED flag was geset
    </simpara></listitem>
    <listitem><simpara>
      <function>fbsql_set_password</function> - Verander het paswoord voor een
      opgegeven gebruiker
    </simpara></listitem>
    <listitem><simpara>
      <function>file_put_contents</function> - Schrijf een string naar een
      bestand
    </simpara></listitem>
    <listitem><simpara>
      <function>ftp_alloc</function> - Maakt plaats vrij voor een bestand dat
      moet geupload worden
    </simpara></listitem>
    <listitem><simpara>
      <function>get_declared_interfaces</function> - Returnt een array met
      alle gedeclareerde interfaces
    </simpara></listitem>
    <listitem><simpara>
      <function>get_headers</function> - Fetcht alle headers verstuurd door de
      server in respons van een HTTP verzoek
    </simpara></listitem>
    <listitem><simpara>
      <function>headers_list</function> - Returnt een lijst van respons
      headers die verstuurd zijn (of klaar zijn om te versturen)
    </simpara></listitem>
    <listitem><simpara>
      <function>http_build_query</function> - Genereer een URL-geencodeerde
      query string
    </simpara></listitem>
    <listitem><simpara>
      <function>idate</function> - Format een lokale tijd/datum als integer
    </simpara></listitem>
    <listitem><simpara>
      <function>image_type_to_extension</function> - Neem bestandsextensie
      van image-type returned door <function>getimagesize</function>,
      <function>exif_read_data</function>,
      <function>exif_thumbnail</function>,
      <function>exif_imagetype</function>
    </simpara></listitem>
    <listitem><simpara>
      <function>imagefilter</function> - Past een Filter toe op een afbeelding
      met het gebruik van een aangepaste hoek
    </simpara></listitem>
    <listitem><simpara>
      <function>imap_getacl</function> - Neemt de ACL van een gegeven mailbox
    </simpara></listitem>
    <listitem><simpara>
      <function>ldap_sasl_bind</function> - Bind naar LDAP directory met
      gebruik van SASL
    </simpara></listitem>
    <listitem><simpara>
      <function>mb_list_encodings</function> - Returnt een array van alle
      ondersteunde encoderingen
    </simpara></listitem>
    <listitem><simpara>
      <function>pcntl_getpriority</function> - Neemt de prioriteit over van
       om het even welk process
    </simpara></listitem>
    <listitem><simpara>
      <function>pcntl_wait</function> - Wacht of returnt de status van een
      forked child zoals gedefinieerd door de waitpid() systeem call
    </simpara></listitem>
    <listitem><simpara>
      <function>pg_version</function> - Returnt een array met client, protocol
      en server versie (indien beschikbaar)
    </simpara></listitem>
    <listitem><simpara>
      <function>php_check_syntax</function> - Kijk de syntax na van het
      gespecifieerde bestand
    </simpara></listitem>
    <listitem><simpara>
      <function>php_strip_whitespace</function> - Return de bron met gestripte
      commentaar en whitespace
    </simpara></listitem>
    <listitem><simpara>
      <function>proc_nice</function> - Verander de prioriteit van het huidige
      process
    </simpara></listitem>
    <listitem><simpara>
      <function>pspell_config_data_dir</function> - Verander de lokatie van de
      taalgegevens bestanden
    </simpara></listitem>
    <listitem><simpara>
      <function>pspell_config_dict_dir</function> - Verander de lokatie van de
      main woordlijst
    </simpara></listitem>
    <listitem><simpara>
      <function>setrawcookie</function> - Stuur een cookie met geen url
      encodering van de waarde
    </simpara></listitem>
    <listitem><simpara>
      <function>snmp_read_mib</function> - Lees en parse een MIB bestand in de
      actieve MIB tree
    </simpara></listitem>
    <listitem><simpara>
      <function>sqlite_fetch_column_types</function> - Return een array van
      kollom type van een bepaalde table
    </simpara></listitem>
    <listitem><simpara>
      <function>str_split</function> - Converteer en string naar een array
    </simpara></listitem>
    <listitem><simpara>
      <function>strpbrk</function> - Zoek een string voor elk van een set van
      karakters
    </simpara></listitem>
    <listitem><simpara>
      <function>substr_compare</function> - Binair veilige optionele
      hoofdletter ongevoelige vergelijking van twee strings van een offset,
      tot lengte van karakters
    </simpara></listitem>
    <listitem><simpara>
      <function>time_nanosleep</function> - Vertraging van een aantal seconden
      en nano seconden
    </simpara></listitem>
   </itemizedlist>
   <note>
    <para>
     De <link linkend="ref.tidy">Tidy</link> extensie zijn API is ook 
     compleet veranderd.
    </para>
   </note>
  </section>


  <section id="migration5.newconf">
   <title>Nieuwe Directives</title>
   <para>
    Er werden enkele nieuwe &amp;php.ini; directives geintroduceerd in PHP 5.
    Hier is er een lijst van:
   </para>
   <itemizedlist>
    <listitem><simpara>
     mail.force_extra_parameters - Forceer de toevoeging van 
     gespecifieerde parameters om mee te geven als extra parameters van de
     sendmail binary. Deze parameters zullen altijd de waarde van de 5de
     parameter vervangen naar <function>mail</function>, zelfs in safe mode
   </simpara></listitem>
    <listitem><simpara>
     <link linkend="ini.register-long-arrays">register_long_arrays</link> -
     sta toe/weiger PHP om de verouderde lange $HTTP_*_VARS te registreren
   </simpara></listitem>
    <listitem><simpara>
      <link linkend="ini.session.hash-function">session.hash_function</link> -
      selecteer een hash functie (MD5 or SHA-1)
   </simpara></listitem>
    <listitem><simpara>
      <link
       linkend="ini.session.hash-bits-per-character">session.hash_bits_per_character</link>
      - definieer hoeveel bits bewaard worden in elk karakter tijdens het
        converteren van de binaire hash data naar iets leesbaars (van 4 tot 6)
   </simpara></listitem>
    <listitem><simpara>
     zend.ze1_compatibility_mode - Schakel de compatibiliteits mode met Zend
     Engine 1 in (PHP 4)
   </simpara></listitem>
   </itemizedlist>
  </section>

  <section id="migration5.databases">
   <title>Databases</title>
   <para>
    Er waren enkele veranderingen in PHP 5 omtrent databases (MySQL en
    SQLite).
   </para>
   <para>
    In PHP 5 zijn de MySQL client libraries niet gebundeld, wegens onderandere
    licentieproblemen. Voor meer informatie, lees de <link 
     linkend="faq.databases.mysql.php5">FAQ entry</link>.
   </para>
   <para>
    Er is ook een nieuwe extensie, <link linkend="ref.mysqli">MySQLi (Improved
     MySQL)</link>, welke ontworpen is om te werken met MySQL 4.1 en hoger.
   </para>
   <para>
    Sinds PHP 5, is de <link linkend="ref.sqlite">SQLite</link> extensie
    in PHP ingebouwd. SQLite is een inbouwbare SQL database engine en is geen
    client library die gebruikt wordt om te verbinden met een grote database
    server (zoals MySQL of PostgreSQL). De SQLite library leest en schrijft
    direct naar en van de database bestanden op de schijf. 
   </para>
  </section>

  <section id='migration5.oop'>
   <title>Nieuw Object Model</title>
   <para>
    In PHP 5 is er een nieuw Object Model. PHP's handelen van objecten is
    helemaal herschreven, wat betere prestaties en meer features toelaat.
    Gelieve <ulink
     url="http://www.php.net/zend-engine-2.php">http://www.php.net/zend-engine-2.php</ulink>
     te lezen voor meer informatie.
   </para>
  </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:"../../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
-->
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.