I. Les pages web statiques

Avant de construire des sites web dynamiques en PHP, j'avais déjà l'expérience des sites web statiques et la maîtrise des diverses techniques de construction avec les outils suivants : le langage de balises HTML, les scripts JavaScript pour dynamiser un peu les pages et les feuilles de styles CSS pour mettre en forme les pages.

La construction de pages web peut s'apprendre en faisant preuve d'un peu de méthode et en prenant le temps d'en saisir les bases. J'ai personnellement écrit mes premières pages web avec un copain, en visitant les sites expliquant les bases du HTML et en regardant le code source des sites persos. Il est important de bien comprendre à quoi servent les différents outils de construction d'un site et comment ils s'imbriquent les uns aux autres : le HTML permet de structurer le contenu d'une page web, alors que les feuilles de style permettent dans un second temps de les mettre en forme de façon générique et réutilisable. Quant au JavaScript, il permet aux webmasters expérimentés d'interagir avec le visiteur en intégrant aux pages web des scripts (minis programmes) qui s'exécutent sur le navigateur du client afin de donner un semblant de dynamisme aux pages web. Du JavaScript, on peut en faire deux usages principaux : le copier/coller de scripts tout faits téléchargés depuis le Net afin d'afficher la date et l'heure sur sa page, et autres gadgets ; ou bien la construction de ses propres scripts afin de contrôler les formulaires, faire du rollover, etc., et cela demande d'apprendre ce langage de Script, chose plus difficile que le simple langage de mise en page qu'est le HTML.

Les arts graphiques et le webdesigning passent après la maîtrise des éléments décrits plus hauts. La création de graphismes originaux n'est pas indispensable si l'on maîtrise les feuilles de style.

C'est en visitant des sites consacrés aux débutants et en copiant puis modifiant des pages trouvées sur le Net que je me suis formé en autodidacte aux technologies du Web. Tout apprentissage est évidemment un processus long et semé d'embûches, il faut intégrer de nouveaux concepts : la structure d'un document HTML ne va pas de soi au premier abord, adopter une certaine rigueur et méthodologie dans son travail, bien qu'on ait la fâcheuse tendance à vouloir toujours tout faire en même temps et à aller trop vite. Les difficultés sont au rendez-vous et le découragement jamais bien loin. Mais la persévérance permet de venir à bout des obstacles et les erreurs des premiers jours sont enrichissantes et font partie intégrante du processus de formation. Il ne faut pas croire qu'en une nuit on va apprendre le HTML.

D'abord en créant de simples pages web écrites en HTML, puis en concevant des feuilles de style afin de donner un plus joli aspect à mes pages. Avec l'expérience, j'ai compris quelles possibilités offrait le web et j'ai commencé à créer mon site perso pour mettre en ligne un exposé sur la « surfusion » et faire partager ma passion pour les sciences. Puis, j'ai commencé à intégrer des scripts JavaScript à mes pages, d'abord pour afficher la date et l'heure, puis de nombreux autres gadgets qui, finalement, ont fini par surcharger inutilement mes pages devenues fouillis. Après avoir bien compris le fonctionnement général du web et de ces outils, je me suis livré à un lifting en profondeur de mon site. Et enfin j'ai été fier de mon travail. Bien qu'il ne soit jamais achevé : un site web doit être réactualisé en permanence pour générer du trafic.

Je me suis alors mis à lire des articles de fond publiés sur le web et à destination des webmasters, j'ai donc ingurgité pas mal d'informations sur la manière de mettre au point une stratégie technique, mais aussi webmarketing. De nombreux articles techniques m'ont permis de me former en continu, de suivre l'évolution du web, des attentes des visiteurs et des nouveaux outils qui apparaissent comme le Flash, les applets Java, les ActiveX, etc.

Le langage HTML a énormément évolué en quelques années, de sa version 3.2, puis 4, puis le passage au DHTML (association symbiotique entre HTML et JavaScript) ; enfin les normes successives des feuilles de styles CSS 1 puis 2 ; et surtout les versions des navigateurs qui ont énormément progressé dans leur qualité et rapidité d'affichage des pages web. L'apparition du nouveau format PNG…

Un webmaster chevronné est toujours à l'affût des nouveautés et évolutions des outils de création des pages web.

II. Les pages web dynamiques

La différence entre les sites personnels et les sites professionnels de l'Internet réside assurément dans les applications sous-jacentes de ces derniers qui – au même titre que de vrais logiciels – sont capables d'interagir avec les visiteurs via des programmes hébergés sur le serveur et qui génèrent dynamiquement le contenu des pages web à partir du contenu d'une base de données et des choix du visiteur. Cette notion de programme change radicalement la notion de site web, on parle d'ailleurs d'application web.

Or, la programmation de logiciels côté serveur n'a rien de comparable avec la création de pages web en simple langage de description HTML. Cette programmation doit être réalisée par des informaticiens rompus aux techniques de programmation et de création de logiciels.

Ainsi, un site web dynamique est en fait un logiciel qui au lieu d'être exécuté sur le poste client, est exécuté sur le serveur et renvoie des pages web au client. Il existe de nombreux langages différents permettant de créer de telles applications : ASP, JSP, Java, PHP, CFM…

Internet a connu un succès phénoménal dans le monde. Le nombre de sites a explosé dans les années 1990. Les sites personnels statiques ont envahi le paysage du Net. Parallèlement, les entreprises ont éprouvé le besoin de communiquer sur le web et de fournir des informations provenant directement de leurs bases de données, et de coupler leurs sites web avec leurs systèmes d'information internes. Ceci a profité aux éditeurs de solutions informatiques qui – pour faire face à cette demande – ont inventé des langages adéquats.

Depuis le lycée où j'ai appris la programmation avec le langage Turbo Pascal, puis à l'université où j'ai suivi des cours d'algorithmique et de programmation en langage C avec des applications directes en imageries numériques ; je me suis finalement orienté vers une filière informatique. Avant d'apprendre l'existence du PHP, j'avais déjà une forte expérience de la programmation et des sites web statiques.

III. Qu'est-ce que le PHP ?

Le langage PHP a été créé en 1994 par Rasmus Lerdorf pour les besoins des pages web personnelles (livres d'or, compteurs, etc.) et pas pour les sites professionnels. À l'époque, PHP signifiait Personal Home Page.

C'est un langage incrusté au HTML (c'est-à-dire qu'il s'écrit au beau milieu du code HTML) et interprété (dans sa version 3) ou compilé (dans sa version 4) côté serveur. Il dérive du C et du Perl dont il reprend la syntaxe. Il est extensible grâce à de nombreux modules qui multiplient ses fonctionnalités et son code source est ouvert, permettant ainsi à n'importe qui de contribuer au projet en ajoutant de nouvelles fonctionnalités de son cru. Comme il supporte tous les standards du web et qu'il est gratuit, il s'est rapidement répandu sur la toile.

En 1997, PHP devient un projet collectif et son interpréteur est réécrit par Zeev Suraski et Andi Gutmans pour donner la version 3 qui s'appelle désormais « PHP : Hypertext Preprocessor » (acronyme récursif à l'exemple du système Open Source Linux : Is Not UniX).

Il se crée par ailleurs des applications web prêtes à l'emploi (PHPNuke, PHP SPIP, PHPSlash…) permettant de monter facilement et gratuitement son portail. En juillet 2000, plus de 300 000 sites tournaient déjà sous PHP ! C'est avant tout sa gratuité et sa simplicité qui expliquent qu'il se soit ainsi répandu.

IV. Ma découverte du PHP

À l'issue de ma deuxième année de DEUG d'informatique (BAC+2), un stage obligatoire de 2 à 3 mois devait sonner la fin d'une année consacrée aux mathématiques, aux techniques de programmation et aux bases de données. C'est ainsi qu'en cours d'année scolaire, je me suis attelé à la recherche d'un stage pour l'été 2001. J'ai pris connaissance d'une annonce d'une société cherchant un stagiaire pour monter un site en PHP. Comme je ne savais pas ce qu'était PHP, j'ai cherché sur le Net et ai découvert que PHP était un langage de programmation ajouté au code HTML et qui – interprété par le serveur – permettait de générer du code HTML et d'accéder à une base de données. Et j'ai découvert par la même occasion que l'hébergeur gratuit (Multimania à l'époque) chez qui mon site perso était installé offrait la possibilité d'utiliser le PHP dans mes pages. Je me suis alors rué sur la doc en ligne et me suis aperçu avec surprise que le langage PHP ressemblait beaucoup au langage C que je pratiquais depuis déjà 3 ans. De plus, PHP pouvait être couplé avec une base de données MySQL dont l'utilisation est quasiment identique aux bases SQL-ORACLE que je pratiquais alors à la fac.

J'ai alors sauté sur l'occasion, pris rendez-vous et signé la convention de stage dans la foulée. À noter que je n'avais encore jamais fait de PHP avant de signer ma convention de stage ! Car ayant déjà la maîtrise du développement de sites web statiques, de la programmation en C et des bases de données SQL, le passage au PHP promettait d'être une sinécure.

Mais c'était mettre la charrue avant les bœufs ! Je consacrai deux semaines avant le début de mon stage à apprendre les bases du PHP. Pour cela, j'ai d'abord parcouru le Net à la recherche de sites web proposant des articles et des tutoriels destinés aux débutants. Et j'en ai trouvé beaucoup. J'ai imprimé la plupart d'entre eux, puis lu et enfin reproduit le code décrit. J'ai commencé par l'affichage de texte, la manipulation de variables (dont les tableaux) et la construction de fonctions. Puis j'ai passé la vitesse supérieure en manipulant des fichiers, en passant des paramètres de page en page et en utilisant les sessions (un gros morceau, ça, les sessions !). Et l'étape finale de mon initiation a été l'accès à une base de données, facilité par l'usage du langage de requête MySQL qui dérive directement du SQL que j'avais eu l'occasion d'apprendre en cours d'année. C'est avec les manuels officiels traduits en français et imprimés de PHP et MySQL que je me rendis à mon stage. Toujours à portée de main, je les consultais fréquemment pour m'assurer de la syntaxe d'une fonction, pour vérifier que je n'allais pas créer une nouvelle fonction alors qu'il en existait déjà une équivalente. C'est en les lisant, relisant, en expérimentant de nouveaux scripts, en passant du temps à concevoir sur papier et vérifier théoriquement mes solutions et algorithmes que j'ai acquis de solides connaissances en PHP.

Les classes et objets, et les autres subtilités du langage me vinrent progressivement au cours de mon stage et durant mes expériences futures. Au fur et à mesure que les versions de PHP se succèdent et apportent leur lot de nouvelles fonctionnalités et de nouveaux concepts (expressions régulières, fonctions dynamiques, services SOAP, XML…), je continue à me former. Je suis donc à la recherche perpétuelle d'informations sur les mises à jour de PHP, sur les nouvelles bibliothèques de fonctions développées en PHP…

Quand un problème survient, quand je souhaite réaliser une chose que je n'ai jamais faite auparavant, je me dis toujours qu'il est très probable que quelqu'un avant moi y a déjà pensé, a déjà cherché et trouvé la solution. Je cherche d'abord à résoudre le problème avec mes connaissances et ma doc personnelle qui est un amas de pages web imprimées, classées par thèmes et rangées dans un tiroir. Si après avoir cogité plusieurs jours, je ne trouve pas la solution, je vais la chercher où elle se trouve : dans des bouquins à la bibliothèque ou sur le Net (pour 95 % des cas). Et là je vais sur Google.fr, je choisis avec intelligence mes mots clés et je lance une recherche. Ces mots clés peuvent être le message d'erreur que PHP s'entête à me renvoyer (« Fatal error: The script tried to execute a method or access a property of an incomplete object »), la description du résultat que je veux obtenir (« lister les fichiers d'un répertoire »), etc. Je consulte toujours la doc offcielle (www.php.net/manual/) en français ou en anglais (mises à jour plus fréquentes), puis les articles et tutos et enfin je lance une recherche dans les forums. Et si au bout d'une semaine, je n'ai toujours pas trouvé la solution, alors je soumets mon problème dans le forum approprié en formulant ma question correctement (ce que je veux faire, comme je le fais actuellement, avec quelle version de PHP, OS et navigateur, quel message d'erreur…).

Ce n'est qu'après avoir acquis une solide expérience et de bonnes connaissances en PHP que j'ai commencé à fréquenter les forums. Forums qui sont de plus en plus fréquentés par des débutants qui s'abstiennent bien souvent d'une recherche approfondie préalable dans la documentation existante et attendent que leur soient livrées des solutions toutes prêtes. La réflexion personnelle n'a jamais fait de mal à personne, bien au contraire :)

V. Conclusion

L'apprentissage du PHP nécessite de maîtriser obligatoirement le HTML. Il est recommandé d'avoir de solides bases en programmation pour rédiger un code propre et sécurisé. Et pour la manipulation d'une base de données, il est indispensable de connaître le langage d'interrogation SQL.

Jusqu'à très récemment (version 4, 2002), le langage PHP, par son fonctionnement même, se révèle être un très mauvais outil pour l'apprentissage de la programmation ; bien qu'il reste très accessible aux non-informaticiens de par sa syntaxe très souple qui ne requière que peu de rigueur et passe aux oubliettes toute déclaration et tout typage préalables des variables (ce qui est de nature à choquer les C-puristes !).