
PHP est un langage de script HTML exécuté du côté du serveur. Il veut dire « PHP : Hypertext Preprocessor ». Sa syntaxe est largement inspirée du langage C, de Java et de Perl, avec des améliorations spécifiques. Le but du langage est d'écrire rapidement des pages HTML dynamiques.
L'origine de PHP remonte à 1995 quand Rasmus Lerdorf a créé PHP/FI, une librairie de scripts Perl utilisés pour la publication de son CV sur son site personnel. Au fur et à mesure des évolutions, la librairie a été portée en C et agrémentée de nouvelles fonctionnalités pour créer des pages dynamiques simples pour le web et accéder à quelques sources de données. PHP/FI signifie Personal Home Page/Forms Interpreter. PHP/FI 2.0 sort en 1997, toujours développé par une seule personne. C'est le succès : 50000 sites (1% des noms de domaines) disent l'utiliser ou le supporter. Les contributeurs affluent. PHP 3.0 sort en juin 1998, c'est la première version développée conjointement par Rasmus Lerdorf, Andi Gutmans et Zeev Suraski et entièrement réécrite (les versions précédentes étaient trop lentes pour une application commerciale). Outre les performances, PHP 3 est modulaire et extensible, permettant de lui greffer des API supplémentaires, ce qui n'a pas manqué avec le support de nombreuses bases de données, de formats et de protocoles, une syntaxe plus cohérente et un support basique de l'objet. Il a été installé sur 10% du parc mondial des serveurs web avec des dizaines de milliers de développeurs et des centaines de milliers de sites. Le moteur de PHP 4 a été repensé afin d'en améliorer les performances pour des applications
complexes et d'augmenter encore la modularité. Un nouveau moteur a vu le jour, appelé Zend Engine (contraction de Zeev et Andi). PHP 4 sort officiellement en mai 2000 et apporte des performances accrues, le supports de plusieurs serveurs web, les sessions, une sécurité accrue.
Et PHP 5 , un cycle qui peut durer plusieurs mois, le but de PHP 5 est une amélioration des performances du moteur Zend (Zend Engine 2), un modèle objet étendu et très proche du C++, une compatibilité accrue avec de nouveaux standards et les anciens (RPC, XML,.NET, ...)
PHP est utilisé dans les rubriques suivantes :
– Forums et Messageries
– Commerce électronique
– Banque/Comptes en ligne
– Publication en ligne
– Moteurs derecherche
– Tout ce que vous voulez,(sauf les jeux)
Résumons quelques sigles que nous allons utiliser par la suite.
Une page statique et une page écrite directement en HTML. Elle peut éventuellement incorporer du code Javascript lui donnant un semblant de 'dynamisme' mais uniquement du côté du navigateur et des données locales. Pour des traitements plus lourds nécessitant l'accès à une base de données, un formatage de tableau
en fonction de résultats, une recherche poussée, du graphisme, il faut passer par des pages dynamiques et par un langage qui sera exécuté du côté du serveur : ASP sur les serveurs Microsoft/IIS, Perl, PHP...
PHP est un langage Server Side ou côté serveur. Lors du chargement d'une page PHP, c'est le serveur qui va lire, interpréter et exécuter le code. Puis il renvoie le résultat, généralement sous la forme de code HTML au navigateur. Ainsi le navigateur et l'utilisateur ne voient jamais le véritable
code PHP exécuté. De plus le résultat étant une page web classique en HTML, pas besoin d'installer sur le client des composants spécifiques (java, ...). Il n'y a donc pas de notion de vitesse d'exécution du côté du client, mais celle du serveur est prépondérante.
PHP peut être utilisé comme langage CGI (Common Gateway Interface). Pour rappel, un script ou programme CGI est un programme comme un autre mais dont la sortie est dédiée à un navigateur, par exemple un programme shell, C ou Perl qui sort du HTML. PHP étant un langage script comme un autre on peut l'utiliser dans ce cas, mais ce n'est pas forcément le mieux.
ASP n'est pas entièrement un langage puisque ASP veut dire Active Server Page. ASP dispose bien entendu de ses propres API mais qui peuvent être accessibles via un autre langage. Il s'agit d'utiliser un langage (quelconque) pour créer des pages dynamiques. Nativement disponible avec IIS sous Windows, il ne l'est pas par défaut avec les autres systèmes ou serveurs web comme Apache. Il existe cependant des modules de compatibilité ASP pour Apache comme Apache::ASP qui reprend les API ASP en les étendant et en programmation PERL. Sous Windows, le code ASP se fait généralement en VBScript ou en Jscript. C'est aussi possible sous Unix/Linux et Apache, mais il faut alors se tourner vers des solutions commerciales (Sun One ASP, Instant ASP, ...). Sous Windows ASP et VBScript sont utilisés pour l'accès aux ActiveX, composants bien pratiques mais véritables gruyères pour la sécurité. Il n'existe pas à ce jour de portage de ActiveX sur d'autres systèmes que Windows. PHP est disponible pour toutes les plate-formes et permet de faire la même chose, sinon plus, que ASP et VBScript. N'oublions pas que PHP dispose de plus de 2700 APIs!
Vous devez connaître HTML ainsi qu'un langage de programmation procédural (C par exemple). Une connaissance basique du SQL peut être nécessaire mais sera abordée.
PHP ne sert pas seulement à faire des pages dynamiques. C'est un langage interprété qui au même titre que Perl, Python ou TCL est capable de lancer des scripts intéractifs ou non. On peut même utiliser PHP pour créer des interfaces graphiques (extension GTK). Le minimum nécessaire et vital
pour apprendre PHP est donc l'interpréteur PHP lui-même sur un environnement supporté (Unix,Windows,Mac, ...). Si on parle de LAMP, on voit bien la référence. Un système Linux, un serveur Web Apache, un serveur de bases de données MySQL et un interpréteur PHP. La version 4 de PHP permet de fonctionner avec IIS, et MySQL existe aussi pour Windows. On peut donc utiliser une architecture WIMP (Windows, IIS, MySQL, PHP) ou WAMP (Windows, Apache, MySQL, PHP). Ajouter PHP à IIS, c'est laisser la porte ouverte à tous les vents,on préférera donc la seconde solution.
Les distributions Linux disposent déjà du nécessaire pour l'architecture LAMP et le paramétrage est assez simple. De plus le mode « user_mod » de Apache permet à chaque utilisateur de créer son site web dans un répertoire spécifique de son répertoire personnel. Sous Windows,c'est déjà un peu plus complexe à mettre en oeuvre manuellement.On emploie donc des distributions toutes faites, la meilleure se nommant EasyPHP. Les versions 1.6 et 1.7 sont les meilleures pour développer. On peut ainsi développer son site sous Windows et le porter tel quel sur un serveur Unix.
Pour développer il suffit d'un simple éditeur mais il vaut mieux préférer un éditeur plus évolué supportant la coloration syntaxique et quelques fonctions évoluées. L'éditeur HAPEdit 3 ou Notepad++ est parfait pour développer en PHP. L'accès aux bases MySQL peut se faire soit depuis un navigateur
(phpMyAdmin) soit depuis une interface MySQLCC ou encore DBDesigner pour la conception. Pour les tests: un simple navigateur respectant les standards du web.
Le W3C est l'organisme international faisant loi dans le monde des standards du web. Il a défini une série de normes dont le HTML, le XML, le XHTML, les CSS, etc. Pourquoi respecter un standard ? C'est la garantie d'un bon fonctionnement et du bon affichage de manière identique de vos pages sur tous les navigateurs supportant ce standard. Avec une bonne déclaration (entête HTML) les navigateurs IE6, Mozilla 1.5, Opera 7, Galeon, Konqueror, etc, sont compatibles avec ces standards. L'utilisation de balises propriétaires à un navigateur (blink par exemple) ou de vbscript (sous IE) est à proscrire. La dernière norme HTML valide est HTML 4.01 STRICT. XHTML qui à terme remplacera définitivement HTML est aussi bien supporté. La dernière norme CSS et la 3. Cependant dans ce cas préférez CSS-2 car quelques rares des navigateurs supportent CSS-3. Prenez l'habitude quand c'est possible de tester votre site sur deux ou trois navigateurs : IE6 car c'est le plus répandu, Opera car il est extrêmement respectueux des standards et Mozilla car c'est le challenger et probablement remplaçant à terme de IE (qui n'aura plus d'évolution de version avant LongHorn).