Rechercher sur le site Plan du site Nous contacter
Projetweb
Projetweb
 
PROJETWEB
  Pourquoi Projetweb ?
Le lien Internet
Votre projet avec Projetweb
 
LA BALISE
  Devez-vous mettre du Flash sur votre site ?
Dossier sécurité, confiance
et e-commerce

Qu'est-ce qu'un webmaster ?
PHP version 4.0
Halte aux frames !
Défense du ecommerce
Gare au 1-click !
 
 

 Partenaire !
One2net - Hébergement de site internet
Hébergement de site internet

 
  Accueil > La Balise >

  Développement - Langage  

PHP 4.0 : une version majeure
Format PalmPilotFormat allégé pour impression
par Guillaume Desclaux - 27 juin 2000
 
PHP 4 Dans la course aux outils de développement, le modèle Open Source marque une étape importante avec la sortie de PHP 4.0. Face à ASP (Microsoft), JSP (Sun) ou Cold Fusion (Allaire), PHP est une alternative stable, sérieuse et largement dominante dans le monde Apache. Quoi de neuf ? Une disponibilité sur un grand nombre de plateformes et de serveurs web, un moteur entièrement réécrit, une gestion optimisée de la mémoire et des sessions, et d'autres appétissantes nouveautés.

Quand, fin 94, Rasmus Lerdorf a développé un petit programme destiné à pointer les consultations de son CV sur sa page personnelle (Personal Home Page...), il ignorait qu'il posait les bases d'un langage qu'utilisent aujourd'hui deux millions de sites pour générer dynamiquement leurs pages HTML.

Devenu PHP/FI -version 2 de PHP- puis PHP 3.0, le petit programme du début est aujourd'hui massivement adopté par la communauté des développeurs web. L'équipe -car Rasmus Lerdorf n'est plus seul- qui a participé aux développements sur le mode du logiciel libre peut être fière du résultat obtenu : PHP fait jeu égal avec ASP (Active Server Pages), son concurrent direct du monde Microsoft et est recensé comme le module le plus fréquemment installé sur les serveurs Apache.


Version 4 : un moteur entièrement réécrit...

PHP 3.0 reposait sur un interpréteur qui exécute les commandes au fur et à mesure qu'il parcourt le code. Cette technique, dont les performances ont donné, et donnent encore, toute satisfaction aux utilisateurs de PHP3, a été totalement remplacée dans la version 4 par un moteur entièrement réécrit dont le principe s'inspire des nouveaux compilateurs à la volée qu'on a vu apparaître avec Java.

D'un langage interprété classique, PHP est donc devenu un langage compilé puis exécuté dans la foulée, générant ainsi un gain de performance significatif entre la version 3 et la version 4 pour des scripts faisant largement appel à des boucles par exemple. En fait, plus le script est long et complexe, plus le gain de performance est grand.

Cette nouvelle version a été également l'occasion de remettre entièrement à plat l'architecture de PHP. Ainsi l'interfaçage PHP avec un serveur web est nettement simplifiée : le code du moteur est totalement indépendant du serveur web et s'interface avec celui-ci via une couche abstraite qu'il suffit de redéfinir pour porter PHP sur un serveur web différent.

Ainsi, Apache dispose d'un module PHP mais aussi IIS (Microsoft) qui, grâce à cette nouvelle architecture utilise une dll ISAPI à la place d'un CGI, comme c'était le cas dans la version 3. Le gain de rapidité est très sensible.

PHP étant fourni sous licence Open Source et parfaitement documenté, rien ne vous empêche d'écrire votre propre couche abstraite pour porter cet environnement de développement sur votre serveur web préféré.


La gestion
des sessions
plus puissante
avec PHP 4.0
qu'avec ASP
...et une gestion optimisée de la mémoire

Afin d'optimiser la consommation de la mémoire et le temps nécessaire à l'instanciation des blocs de mémoires des différentes variables, PHP 4.0 intègre maintenant un compteur de référence. Autrement dit : la copie d'une variable dans une nouvelle variable ne duplique pas la zone mémoire mais crée une référence vers une zone mémoire partagée.

Par exemple, si vous avez :

$a = 10;
$b = $a;

$b n'occupe pas de mémoire supplémentaire mais fait simplement référence à $a. Mais il ne s'agit pas d'un véritable pointeur : si la valeur de cette zone mémoire vient à changer en manipulant l'une des variables, la zone mémoire est alors dupliquée pour garantir l'indépendance des variables.

Gains en consommation de mémoire, en rapidité et surtout en fiabilité.

Car un nouveau type de donnée apparaît : le type "resource". Grâce au compteur de référence, la libération manuelle de la mémoire après l'utilisation de variables issues de certains modules (MySQL, Oracle, XML, par exemple) n'est plus nécessaire.

Ce qui s'écrivait auparavant :

<?
while($ma_ligne = sql_get_row($mon_resultset))
{
print query_result($ma_ligne, "nom");
query_free($ma_ligne);
}
?>

s'écrit maintenant sans la ligne "query_free($ma_ligne);". Or l'oubli de cette ligne était souvent à l'origine de sérieuses fuites mémoires. A chaque itération de la boucle, le compteur de référence de la ressource $ma_ligne est remis à zéro et la mémoire est libérée automatiquement.

Enfin, pour la manipulation de variables affectées à la même zone mémoire, PHP 4.0 gère également des alias, équivalents PHP des pointeurs en C.


Une API étendue

PHP supporte depuis la version 3.0 l'encapsulation, le polymorphisme et l'héritage qui, comme chacun sait, sont les principes essentiels d'un véritable langage orienté objet. Mais la version 4.0 va plus loin en apportant le support de COM et même de DCOM grâce à une API (Application Programming Interface) qui a fait peau neuve.

Vous pouvez maintenant instancier dynamiquement des composants beaucoup plus complexes et même distribuer les traitements en utilisant des composants DCOM. Pour instancier un composant il suffit d'utiliser la classe prédéfinie COM en passant en argument le nom du composant en tant que constructeur.

Enfin, vous pouvez toujours utiliser PHP simplement en mode script pour développer des applications plus simplement en utilisant une méthode de type RAD (Rapid Application Development method).


La gestion des sessions

La gestion des sessions sous PHP 3.0 nécessitait le recours à un module externe : phpLib. PHP 4.0 la prend directement en charge et, comble du raffinement, permet une grande souplesse dans la façon dont peuvent être stockées les sessions sur le serveur : dans un fichier plat, en mémoire, dans une base de données, dans le repository d'un Web Distributed Data Exchange (WDDX) ou dans... ce que vous voulez ! Il suffit dans ce cas d'écrire votre propre module de stockage via l'API de modules PHP.

Sur ce point précis, PHP est clairement supérieur à ASP qui, en standard, n'est capable de gérer la session qu'en mémoire. De fait, la manipulation des sessions peut rapidement s'avérer catastrophique sur un site à fort trafic ce qui conduit de nombreux développeurs à ne pas recourir aux sessions et à déléguer ce rôle primordial à de simples cookies stockés sur le poste client. La souplesse de PHP lui permet d'assurer sans difficulté la montée en charge sans compromis de développement sur une question cruciale comme la gestion des sessions.


Des librairies à la pelle

PHP 4.0 offre de nombreuses librairies ou packages externes qui augmentent les possibilités du moteur, que ce soit pour l'accès aux bases de données (Oracle, Sybase, SQL Server, ODBC, ...) ou pour la génération dynamique de graphiques ou de documents PDF directement sur le serveur.

Ajoutez à ces librairies de très nombreuses applications largement supportées par une communauté de développeurs des plus actifs, comme par exemple phpMyAdmin qui permet d'administrer une base de données avec un simple navigateur, ou encore phorum, un ensemble de scripts permettant de gérer un forum web.

Last but not least, PHP est accompagné d'un parser XML sous licence Open Source dont nous vous reparlerons.


Un choix d'actualité !

Disponible dans sa version finale 4.0.0 depuis le 22 mai 2000, PHP est un environnement de développement portable et disponible sur de nombreuses plates-formes et sur de nombreux serveurs web, y compris sous Windows NT avec IIS.

Si, comme certains l'affirment, la présence d'ASP dans l'offre Windows NT-IIS est la raison la plus souvent avancée dans le choix de IIS comme serveur web, on peut légitimement se demander si le vrai danger pour Microsoft coté serveur ne serait pas PHP plutôt qu'Apache.  Signature

L'auteur apprécie les questions, remarques et suggestions. Écrivez-lui

Liens utiles
PHP.net
Le site officiel de PHP
2000
ZEND Technologies
Ce site est le volet commercial du produit open source qu'est PHP
2000
PHP Builder
Une mine d'informations et de ressources autour de PHP
2000
phpWizard
Un autre site plein de ressources pour les développeurs PHP
2000
PHP France
Des infos sur PHP en français par un groupe de développeurs passionnés
2000
PHPInfo.net
Idem, mais n'est le fruit du travail que d'une seule personne
2000
                                                                                                                                                                                                                                                                                                                                                                       

 

Signez le Pacte écologique!

 Publicite !



 Bon à savoir !
Quelques chiffres
PHP c'est :
- un module disponible sur 30% des serveurs Apache
- 2 M de site web
- 10 M de téléchargement par mois
- 6 ans d'expériences


Source :
SecuritySpace mai 2000
PHP



 Indispensable !
Projetweb vous accompagne dans :
•  la stratégie Internet,
•  la création de site,
•  la communauté
•  la formation,
•  le suivi et l'assistance
•  l'audit.



Vie privée
Droits d'auteurs
Mentions légales

Projetweb - 134, rue de Rivoli - 75001 Paris - France
Tél. +33 1 44 76 08 44 - Fax : +33 1 44 76 08 43
Page créée le 27 juin 2000 et modifiée le 20 mars 2008
Une remarque sur cette page ou ce site ?
© Copyright Projetweb 2000 - http://projetweb.com/labalise/php4.php
 
Retour en haut de la page