login  Naam:   Wachtwoord: 
Registreer je!
 Tutorials

Tutorials > PHP


Gegevens:
Geschreven door:
bosgroen
Moeilijkheidsgraad:
Normaal
Hits:
7491
Punten:
Aantal punten:
 (4.8)
Aantal stemmen:
5
Stem:
Niet ingelogd
Nota's:
 Lees de nota's (4)
 

Tutorial:

Wees voorbereid op een php5 migratie

1. Inleiding
2. Waarom migreren naar php5?
3. Case studies
4. Scripts-pakketten (forums,...)
5. Conclusies
6. Bronnen



1. Inleiding

De meeste hosts hebben nog steeds php4 geïnstalleerd op hun servers. Daar is uiteraard niets mis mee, want de laatste versies doen goed hun werk en zijn heel stabiel. Echter, de opvolger php5 is eveneens al lange tijd stabiel. Er zal dus een moment komen waarop je host zal beslissen php5 te installeren.

Deze tutorial probeert jouw voor te bereiden op de migratie naar php5. Voor wie geen eigen server heeft, maar een shared hosting-abonnement heeft, is deze tutorial nuttig. Je webhost kan namelijk van vandaag op morgen beslissen te migreren. Je bent dus beter voorbereid!


pijl top
2. Waarom migreren naar php5?

Nog even uit de doeken doen waarom migreren naar php5 een goeie zaak kan zijn.
- Voor wie object geprogrammeerd schrijft is php5 een must. De OOP-mogelijkheden in php4 zijn namelijk lachwekkend.
- PHP5 is iets performanter (sneller).

Toch zijn webhosts erg terughoudend omtrent een migratie. Ze maken zich er soms vanaf met een goedkope uitdrukking als: 'We wachten tot het wat meer getest is'. Maar de waarheid is dat php5 al heel stabiel is.
Webhosts vrezen voornamelijk klachten van klanten, als hun scripts 'opeens' fouten genereren.


pijl top
3. Case studies

Bij wijze van voorbeeld wil ik hier even vermelden dat met php5 het database-systeem MySQL niet meer standaard wordt ingeschakeld. Maar als eindgebruiker moet je jouw hier (normaal gezien) geen zorgen om maken. Je webhost zal MySQL wel standaard terug inschakelen. Jouw taak zijn de scripts!

Goed nieuws: 99% van de php4-scripts werken feilloos in php5. De twee hoofproblemen bij de migratie hebben te maken met 'referenties' (voor wie aan OOP doet) en 'XML' (domxml wordt niet meer gebruikt, je moet nu libxml gebruiken).


Voor wie OOP programmeerd!
In php 4 wordt bij het aanroepen van een objectmethode worden de argumenten als waarden beschouwd. In php5 worden de argumenten als referenties geïnterpreteerd. Deze verbetering kan tot problemen leiden.
<?php 
class Viper {
     function 
bite$animal ){ 
          
$animal->alive false
     } 


$aViper = new Viper(); //new instance 
$aViper->bite($littleRabbit); 
var_export($littleRabbit->alive); 

//PHP4 output: => NULL! 
//PHP5 output: => FALSE. 
?> 



Functies 'strrpos()' en 'strripos()' gewijzigd
De functies 'strrpos()' en 'strripos()' gebruiken in php5 de gehele meegegeven string als zoeknaald (en niet de aparte letters).
<?php 
var_dump
(strrpos('ABCDEF','DAF'));

//PHP4 output: => int(3)  
//PHP5 output: => bool(false)  
?> 



Enkele nieuwe ini-settings
Ik ga de enkele nieuwe ini-settings hier niet opsommen. Problemen hieropvolgend zullen namelijk voor te wijten zijn aan de setting:
- register_globals = Off by default rather than On
- short_open_tag = Off by default rather than On
Deze setting is al ingevoerd in latere php4-versies. Maar toch vermoed ik dat veel problemen hieraan te wijten zullen zijn.


Nieuwe php-reserved-keywords
exception, final, php_user_filter, interface, implements, public, private, protected, abstract, done, try, catch, throw.
Eveneens nieuw (en mogelijks problematisch): this.


Andere
- De functie array-merge aanvaard in php5 enkel nog arrays als argument. Indien jouw php4-script nog een string of integer doorgeeft, dan krijg je een fatale error.
- Error-reporting van enkele (exotische) functies is overings gewijzigd.
- Klasse namen zijn case-sensitive geworden.
- Een object met geen properties wordt niet langer beschouwd als "empty".
- Classes moeten gedeclareerd worden voor gebruik.


pijl top
4. Scripts-pakketten

Grote scripts-pakketten zoals forums of template-engines bevatten massa's code. Ze zijn meestal ook geschreven volgens mbv object-structuren. Het is juist dit wat zo sterk is gewijzigd in php5.

Het is me ter ore gekomen dat forums zoals 'Invision Power Board(U) v1.3.1 Final' niet werken onder php5. Upgraden is niet altijd een mogelijkheid, daar latere versies van dit forumtype uitgegeven zijn onder een betalende licentie. Algemeen kan wel gesteld wordt dat de scripts met actieve development aangepast zijn (of in de heel nabije toekomst zullen zijn).


pijl top
5. Conclusies

Bij de migratie van een recente php4 versie naar php5 bestaat er een kans dat jouw scripts errors zullen genereren. Vooral dan voor wie aan OOP doet en/of heel uitgebreide scripts heeft. Gebruikers die slechts eenvoudige scripts gebruiken zullen waarschijnlijk niets merken van de migratie. (Voor deze groep van gebruikers is een migratie niet eigenlijk overigens ook niet zo nuttig.)

Dat php4-scripts bijna foutloos werken in php5 betekent echter niet dat het omgekeerde ook waar is. Wanneer je externe scripts wil implementeren (die je bijvoorbeeld op deze site vindt), kijk dan altijd voor welke php-versie die gemaakt is. Bovendien raad ik af grote externe scripts te implementeren die niet meer worden verder gedevelopped.

Suggesties tot vervollediging zullen ter harte genomen worden!


pijl top
6. Bronnen

be2.php.net/manual/nl/migration5.php
php5.bitflux.org/php-eb3/slide_1.php
zend.com/php5/casestudies/php5-orase.php


pijl top

« Vorige tutorial : Technieken, tricks en tips Volgende tutorial : IRC-bot in PHP (Sockets) »

© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.017s