module 2 de la formation Webmaster
e-mail
L'association TechnoLangue
S'inscrire à la formation online
Les réponses aux questions sur la formation Webmaster et le déroulement d'une formation online
Une formation online - comment ça fonctionne ?
Navigation du site
Logo de la formation Webmaster
last revised :
Mai 15, 2003

WorldwideWebmaster

Webmaster 5
Webmaster 4
Webmaster 3
Webmaster 2
Webmaster 1

 
Introduction à la formation PHP

Le débutant qui, aujourd'hui, tente de se renseigner sur la signification de l'acronyme PHP, arrive au beau milieu de la discussion pour et contre cette technique. Il peut rencontrer un "accro" qui, dès la première heure (c'est-à-dire depuis 1994), a pleinement souscrit aux idées de Rasmus Lerdorf, "l'inventeur" du langage : il dirait que PHP correspondrait à Personal Home Page - selon lui, on aurait alors affaire à un code idéal pour créer les pages "persos".
   Mais il n'est pas exclu non plus que sa question s'adresse à un cynique qui méprise tout ce qui est PHP. Il traduirait méchamment People Hate Perl - ou, en français, Personne Haïssant Perl.
   Partons donc du principe que notre débutant tombe sur un Webmaster bien instruit, ouvert à toute sorte de langage, dont les connaissances sont à jour de l'actualité du Web. Ici, il apprendrait qu'entre-temps, PHP serait devenu l'abréviation de PHP Hypertext Preprocessor.
 
Qui a raison ?

Personal Home Page

La petite histoire raconte que Rasmus Lerdorf, mécontent de tous les langages "trop compliqués" en cours, était à la recherche d'un système de code simple, apte à lui permettre de compter les visiteurs de son site perso. Plus tard, la facilité de la technique qu'il a effectivement réussie à mettre au point a persuadé d'autres internautes de l'adapter et de se servir de leurs connaissances de programmation pour contribuer à son évolution.
   Une telle évolution n'aurait pas été possible, si Lerdorf n'avait pas suivi la philosophie qui a déjà été répandue par d'autres développeurs avant lui - et dont Thorvald Linus avec son fameux operating system est devenu un des plus connus : il a décidé que les sources du code de l'environnement PHP devaient rester en libre accès. Cela inclut que tout programmeur capable d'améliorer la technique a le droit - et est demandé ! - de modifier ces sources au bénéfice des utilisateurs susceptibles de s'en servir après lui.
   Mais une autre conséquence de cette philosophie est peut-être encore plus essentielle : l'emploi du langage est à la disposition de tous ceux qui ont envie d'en profiter - gratuitement.
 
Toutefois, n'oublions pas qu'une telle gratuité ne sert jamais à des amateurs, mais exclusivement aux experts qui maîtrisent au moins le principe du langage. Car il va de soi que juste la version "brute" du langage est à la disposition de tout le monde - c'est-à-dire à ceux qui savent s'en servir. Ceux, par contre, qui n'ont pas envie d'investir un peu de leur temps dans l'apprentissage ont la possibilité d'employer un des nombreux modules qui ont été "préfabriqués" pour eux : créés par des professionnels qui ont su profiter de la paresse des personnes qui ont hâte de s'appeler "Webmaster" sans avoir les connaissances nécessaires.
 
Nous, de toute manière, n'avons pas besoin de nous soucier de ces modules préfabriqués et généralement assez chers. Pour nous, la version "brute" (et gratuite) du langage est beaucoup plus précieuse que tout module proposé en vente : c'est elle que nous pouvons manier selon nos besoins sans dépendre des idées des créateurs des modules préfabriqués qui, forcément, sont toujours réduits à un nombre limité de fonctions.

People Hate Perl

Avant de parler des avantages - et des désavantages - du PHP, interrogeons ses adversaires les plus acharnés, pour quelle raison ils s'opposent à ce langage qui, de toute manière, a l'immense mérite d'être simple. Vu qu'il s'agit plutôt d'un langage script, il est souvent comparé à JavaScript. Mais son côté server-side le place également dans la catégorie déjà occupée par Perl - et c'est ici où il trouve ses critiques les plus tenaces.
 
Nous n'avons pas l'intention de contribuer à cette querelle marquée par beaucoup de partialité et d'émotions qui oppose les fanatiques de Perl à ceux de PHP. Les deux techniques ont leurs atouts et leurs faiblesses, et la question, laquelle serait la "meilleure", est plutôt mal posée - avant de pencher pour l'une ou pour l'autre, il serait plus logique de demander : "Quelle est la nature du site, qui est le programmeur, et quelles sont ses capacités ?"
   Personne ne douterait de la performance plus élevée de Perl. Chacun sait qu'ici, nous avons affaire à un langage très élaboré, développé par des professionnels de première qualité, qui, entre-temps, est devenu un des "classiques de base" de la programmation Internet. Il est capable de "tout" faire, et il garantit au serveur et aux utilisateurs un maximum de sécurité...
   ...tant qu'il est correctement programmé. Car n'oublions pas que - bien que sa réputation d'être "inaccessible" au "mortel commun" soit largement exagérée - sa technique est très complexe, sa maîtrise, par conséquent, relativement difficile. Si, alors, un débutant se risque à l'employer sans vraiment le maîtriser, il court le danger "d'ouvrir" le serveur à toute sorte d'attaque : au grand plaisir des hackers-novices qui y trouvent un terrain d'essai de premier choix.
 
Il est clair que, pour certaines fonctions plus avancées, la technique du PHP est incapable de remplacer celle du Perl. Mais remplacer un autre langage ne faisait jamais partie des objectifs de Rasmus Lerdorf : il avait l'intention de créer un système de code simple, accessible à tout programmeur, destiné à d'applications simples. Personne n'aurait l'idée de déplacer un bulldozer pour faire remorquer une 2CV - pourquoi, alors, toucher à Perl pour programmer des fonctions de base ?

PHP Hypertext Preprocessor

Depuis sa création en 1994 où il ne disposait que de quelques premières fonctions, PHP s'est transformé en un langage assez puissant. Aujourd'hui, plus de 2000 fonctions ont été définies - ce qui entraîne l'avantage d'un emploi relativement souple. Mais en même temps, ce nombre élevé de codes représente aussi un désavantage : pour maîtriser toutes les possibilités du PHP, c'est-à-dire pour que les pages programmées avec ce langage aient réellement un aspect pro, il est nécessaire d'apprendre un bon tas d'éléments. Celui qui croit "connaître" PHP après avoir étudié les premières fonctions de base, se trompe complètement.
 
Grâce à la collaboration d'un bon nombre de programmeurs qui ont offert leurs connaissances pour perfectionner le code source du PHP, le langage peut être appliqué à pratiquement toutes les plates-formes courantes : il est compatible avec toutes les versions de Windows entre 98 et XP, Mac, Linux etc.

PHP, un langage script

Mais n'oublions surtout pas que le PHP ne fait pas partie des langages "proprement dits". Au contraire du HTML, Java ou C++, il a été conçu comme langage script. Ainsi, il appartient plutôt au groupe représenté par des "classiques" du genre JavaScript.
 
Nous savons déjà qu'un langage script n'est pas destiné à créer ou gérer un code entier, mais à "réagir" à un événement : PHP est, par exemple, capable d'exploiter un formulaire envoyé par un internaute ou, plus généralement, de traiter tout genre de requête provenant d'un utilisateur. Il sait compter le nombre de visiteurs - c'est-à-dire qu'il "réagit" à chaque visite du site -, il crée des documents destinés à fournir des renseignements recherchés pour, ensuite, répondre à de diverses demandes d'information comme, par exemple, de l'heure ou, pour parler de sa fonction la plus connue, il livre des systèmes de gestion documentaire, c'est-à-dire qu'il fait l'intermédiaire entre un utilisateur qui cherche des éléments dans une base de données et la database elle-même.
 
Il va de soi que beaucoup d'autres tâches intéressantes se "cachent" parmi les plus de 2000 fonctions qui, ensemble, forment le système du code PHP. Les nommer sortirait du cadre de cette introduction - mais nous en ferons connaissance au fur et à mesure de cette formation.
 
Comme pour tout langage script, les éléments du PHP s'insèrent dans un code rédigé dans un "véritable" langage de programmation qui a pour mission d'appeler les événements script. Dans les chapitres précédents, nous avons appris que le travail pour Internet nous laisse le choix entre plusieurs langages. Mais le plus facile - et, par conséquent, le plus adapté à la gestion d'un code dont le mérite principal est sa simplicité d'emploi - reste le HTML.

PHP et HTML

Ainsi, il se pose la question, quelles sont les connaissances dont le débutant en PHP doit disposer. Suffit-il d'avoir quelques idées du HTML ? La maîtrise d'un éditeur HTML du genre DreamWeaver ou Golive procure-t-elle une base assez solide ?
 
La réponse est "non !".
 
Il ne vaut pas la peine de perdre son temps avec un essai (vain) d'apprendre le PHP sans maîtriser parfaitement tous les marqueurs, attributs et valeurs du HTML. Un programmeur qui ne dispose que de connaissances de base ou qui ne sait rédiger un code HTML qu'à l'aide d'un éditeur n'est pas capable de comprendre les fonctions avancées du PHP. Son code restera "amateur", la diversité des possibilités qui, justement, forme le point fort du langage lui échappera.
 
Dans ce cours, nous partons du principe que le débutant possède toutes les connaissances en HTML qui sont transmises par la formation HTML fournie par TechnoLangue.

PHP et JavaScript

Nous avons déjà parlé de la querelle qui oppose les accros du PHP à ceux du Perl. Les amateurs du JavaScript n'ont jamais eu tendance à entamer une discussion sur les avantages et désavantages des deux langages script. évaluer, lequel serait le "meilleur", correspondrait effectivement à un jugement de caractère subjectif. Toujours est-il qu'un bon nombre de particularités distinguent l'emploi du JavaScript de celui du PHP dont les unes parlent pour le premier, les autres soulignent les atouts du deuxième. Seules les préférences - et les capacités - individuelles d'un Webmaster peuvent décider du langage employé pour la rédaction de ses scripts.
 
Pour mieux expliquer les particularités des deux langages, nous traçons ici quelques-unes des différences les plus essentielles - sans, évidemment, prétendre d'être complets. Les différences plus spécifiques seront traitées au cours des divers chapitres de la formation.

Le côté server-side

La particularité la plus importante du PHP est son caractère server-side. Au contraire du JavaScript, son code n'est pas chargé dans l'ordinateur de l'internaute, mais exécuté à l'intérieur du serveur. - Ajoutons, pour être plus exacts, que nous disposons aussi d'une version JavaScript côté server-side qui, toutefois, présente plusieurs problèmes : il est accepté par très peu de serveurs et son exécution et trop lente pour pouvoir se mesurer à ses "concurrents". Par conséquent, il n'est employé que très exceptionnellement et compte parmi les "vestiges" des débuts de la programmation Web.
 
Dans le cadre des cours précédents, nous avons déjà discuté des "pour" et des "contre" d'une exécution server-side. L'utilisateur ne dépend pas de son navigateur, vu que le serveur lui livre les informations déjà en forme "décodée". Le désavantage : comme le code doit "voyager" du navigateur qui le capte vers le serveur qui le décode et retourner vers le navigateur pour, finalement, être affiché sur l'écran de l'internaute, ce processus est automatiquement plus lent que celui d'une exécution client-side. Mais comme la vitesse d'une exécution de code dépend toujours de la qualité d'un serveur, ce désavantage peut aussi se transformer en atout.
 
Qui dit server-side dit "question de sécurité". Il est clair que l'exécution d'un code à l'intérieur d'un serveur amène toujours quelques dangers non négligeables : au moment où le serveur "s'ouvre" pour accueillir le code envoyé par le navigateur, il risque d'être exposé à des intrusions illégales. Seul un serveur de configuration correcte et professionnelle sait résister à de telles attaques. Nous n'avons donc pas besoin de mentionner que le choix d'un serveur pour l'hébergement de scripts en PHP ne devrait jamais être pris à la légère.

Les "limites" du PHP

L'exécution en server-side amène un autre désavantage souvent oublié par les débutants : la limitation par les serveurs. Comme ce sont eux qui font la partie principale du travail, l'exécution de notre code dépend largement de leurs capacités. Nous n'avons donc pas seulement besoin d'un serveur assez rapide pour ne pas faire languir nos visiteurs pendant le décodage - avant de réfléchir sur la question de la rapidité, il faut nous demander si, déjà, il est capable de s'occuper de cette tâche. N'oublions pas qu'un nombre toujours assez grand d'hébergeurs - surtout les moins coûteux - ne fournissent pas le support nécessaire pour l'exécution du PHP ou, souvent, ils restreignent son utilisation à la version 3.
 
Le JavaScript, par contre, ne connaît pas de telles limitations.

2000 contre 200 fonctions

Nous avons déjà mentionné les plus de 2000 fonctions du PHP, nombre qui donne au langage une certaine souplesse. Le JavaScript, par contre, n'en possède que quelque 200. Cela veut-il dire qu'il offre beaucoup moins de possibilités ? - Non. Mais il est vrai qu'il demande au Webmaster un travail plus soigné : tandis que le programmeur PHP a un spectre très large de fonctions dans lequel il "pique" celles qui construisent son script, le programmeur JavaScript est obligé de combiner soigneusement les quelques fonctions dont il dispose - il "jongle" donc avec les codes, et une seule erreur risque de mettre en question le fonctionnement de son script.
 
D'un autre côté, personne ne nierait qu'il est plus facile de retenir 200 fonctions que 2000...

Les normes de programmation

Au cours des formations précédentes, il était souvent question des normes. Quel programmeur HTML n'a pas rêvé de se "libérer" des règles imposées par le W3C ? D'une autre côte, est-il souhaitable de voir régner une espèce "d'anarchisme" de programmation ? - Nous avons vu, à quel point les différentes "philosophies" de navigateurs comme Internet Explorer ou Netscape peuvent accabler un Webmaster et augmenter ses heures de travail. Si, par conséquent, la programmation du Web ne disposait plus d'aucune norme, le désordre ne serait-il pas encore plus grand ?
 
Toujours est-il que la programmation en JavaScript est soumise à la norme ECMA, tandis que le PHP n'est géré par aucune norme - le support installé sur le serveur est le seul à décider de ce qui est possible ou non.

DHTML et pages dynamiques

Au contraire du PHP, le JavaScript est adapté aux sites rédigés en DHTML. Mais les deux savent gérer les pages Web dynamiques, c'est-à-dire les fonctions dynamiques des documents HTML. Toutefois, le PHP y est un peu plus fort : bien que le JavaScript soit capable de réaliser de telles fonctions, son code reste lourd, l'exécution difficile.

Le "stade" actuel du PHP

Bien que nous disposions actuellement d'une quatrième version du PHP, un bon nombre d'hébergeurs ne proposent à leurs clients que la version 3. Il est vrai que la différence n'est pas énorme - la nouvelle version est un peu plus performante, plus souple, et elle offre quelques fonctions supplémentaires. Mais comme, de toute manière, la performance du langage dépend de celle du serveur, l'avantage de la nouvelle version n'est pas forcément énorme.
 
Comme toutes les formations précédentes, aussi celle du PHP présente évidemment la version la plus récente. Mais pour ne pas exclure la possibilité de travailler avec un serveur qui restreint ses clients à la version 3, les divers chapitres ont pour principe de souligner les différences entre les deux versions en cours.


 
line

Copyright : TechnoLangue, 1997 - 2003
last revised: Mai 15, 2003

document conforme à la norme du HTML 4.01document conforme à la norme CSS2
Inscription | La formation | Les prix | Vos questions | Nous contacter