PHP 4 : Quoi de neuf ?
PHP est un langage de script pouvant être embarqué
dans le code HTML de vos pages Web. Ceci vous permet de
créer des pages " dynamiques " pouvant être édité
de la même manière que les pages HTML classiques.
PHP est déjà largement utilisé à
travers le monde. On ne compte pas moins de 2,7 millions de domaines utilisant
ce langage puissant (juin 2000). Ce chiffre est en constante augmentation, démontrant
ainsi que PHP devient véritablement
un standard pour le Web.
La grande force de PHP se résume par sa facilité d'utilisation et
d'extension, mais également par ses capacités à s'intégrer
dans du code HTML existant. Nous ne traiterons pas ici des bases du langage.
PHP4
Le 22 mai dernier, la nouvelle version 4 a fait son apparition.
Le successeur de la version 3 apporte, bien sûr, un grand nombre de changements
notables :
- support du type booléen
- compilation utilisant désormais les fonctionnalités
Unix (libtools, automake, etc.)
- support du cryptage par utilisation de la bibliothèque
mycrypt (Blowfish, TripleDES, MD5, SHAI, etc)
- support du FTP, (pour l'accès FTP par le Web par
exemple).
- gestion des sessions (cookies)
- amélioration de la gestion mémoire
- support de Java. (il est maintenant possible d'utiliser
directement des méthodes sur des objets Java depuis PHP)
- support des regex Perl
- restructuration complète du fichier de configuration
(php.ini). Il est à présent possible de manipuler ce fichier
en cours d'exécution avec Apache.
- Reference Counting. Ceci représente un gain important
dans la gestion des ressources et en particulier dans le cas d'un accès
à une base de données.
- possibilité d'appeler des fonctions avant leur
déclaration dans le code. Certes, ceci est quelque peu "goret",
mais il est parfois utile de le savoir.
- Assignement de variable par référencement.
Pour être clair, vous pouvez lier deux variables de manière à
ce qu'un changement de valeur pour l'une d'entre elles implique automatiquement
le changement pour l'autre.
Signalons également que PHP4 est une réécriture
complète de PHP3 et intègre désormais le moteur Zend. Ceci
a permis d'augmenter considérablement les performances de PHP en terme
de vitesse et de fonctionnalité. La plupart des limitations de PHP3 ont
ainsi été éliminées. Dans le même temps, la
plupart des fonctionnalités disponibles sous forme de bibliothèques
sont maintenant supportées de manière native.
Incompatibilités
Il existe un certain nombre d'incompatibilités
entre PHP3 et PHP4. Il ne s'agit pas de différences capitales, mais certains
scripts peuvent rencontrer des problèmes dus à la mise à
jour. Vous trouverez, en fin d'article, la liste complète des fonctions
PHP3 absente dans PHP4.
- Le renvoi d'une valeur d'état pour la
fonction "require" (permettant d'inclure le contenu d'un fichier
dans le script PHP), ne fonctionne plus. Vous devrez utiliser la fonction
"include" à sa place. Ceci n'est pas très grave, sauf
si vous testez la validité de l'inclusion du fichier.
- Vous ne pouvez plus utiliser la chaîne
{$ entre guillemets. Ceci peut être source de problèmes dans
le cas où, par exemple, vous affichez le symbole { à l'aide
de la fonction print :
print "{$variable";
PHP3 permettait d'afficher ainsi le symbole { suivi de la valeur de $variable.
Avec PHP, vous devrez utiliser :
print "\{$variable";
En contrepartie, il est possible de référencer une variable
dans une chaîne entre guillemets :
print "${tab[O]->ceci}";
- La chaîne "0" est à présent
considérée comme vide. Attention, cette incompatibilité
est connue pour poser problème avec phpMyAdmin. Assurez-vous de mettre
à jour ce logiciel en même temps que PHP.
- Les appels à setcookie() sont maintenant
effectués dans l'ordre d'appel. Avec PHP3, ils étaient effectués
dans l'ordre inverse.
D'autres petites incompatibilités existent,
de moindre importance. Vérifiez régulièrement la page http://www.php.net/version4/incompatibilities.php
pour vous tenir au courant de la liste complète.
Annexes : Fonction PHP3
absentes dans PHP4
debugger on/off, decrypt, encrypt,
getlastaccess, getlastbrowser, getlastemail, getlasthost, getlastref, getlogdir,
getloghost, getstartlogging, gettoday, gettotal, logas, vm_addalias, vm_adduser,
vm_delalias, vm_deluser, vm_passwd, ada_fetch, ada_autocommit, ada_close, ada_closeall,
ada_commit, ada_connect, ada_exec, ada_fetchrow, ada_fieldlen, ada_fieldname,
ada_fieldtype, ada_freeresult, ada_numfields, ada_numrows, ada_result, ada_resultall,
ada_rollback, gamma_correct_tag, getmyiid, short_tags, set_socket_timeout, hw_documentattributes,
hw_documentbodytag, hw_documentcontent, hw_documentsetcontent, hw_documentsize,
hw_outputdocument, imsp_abook_create, imsp_abook_delet, imsp_abook_deleteent,
imsp_abook_expand, imsp_abook_fetch, imsp_abook_find, imsp_abook_getlist, imsp_abook_lock,
imsp_abook_rename, imsp_abook_search, imsp_abook_store, imsp_abook_unlock, imsp_close,
imsp_open, imsp_option_get, imsp_option_set, imsp_option_unset, freemagick, magickdebug,
readmagick, savemagick, scalemagick, mysql_change_user, ocifreedescriptor, ociloaddesc,
ocisavedesc, ocisavedescfile, pdf_execute_image, pdf_get_info, pdf_put_image,
pdf_set_text_matrix, mcal_event_set_end_now, mcal_event_set_start_now, mck_base64_decode,
mck_base64_encode, mck_decr, mck_encr, rpc_call, solid_close, solid_connect, solid_exec,
solid_fetchrow, solid_fieldname, solid_fieldnum, solid_freeresult, solid_numfields,
solid_numrows, solid_result, solid_fetch_prev, wddx_serialize, wddx_unserialize.
Reproduit avec l'aimable autorisation de Linux Magazine France - Extrait N°
30 Septembre 2000 - http://www.linuxmag-france.org