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="&url.cgispecs;">CGI specificatie</ulink>.
Refereer a.u.b naar <ulink url="&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
"empty".
</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 &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
-->