<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/history.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'fr',
  ),
  'this' => 
  array (
    0 => 'history.php.php',
    1 => 'Histoire de PHP',
    2 => 'Histoire de PHP',
  ),
  'up' => 
  array (
    0 => 'history.php',
    1 => 'Histoire de PHP et des projets li&eacute;s',
  ),
  'prev' => 
  array (
    0 => 'history.php',
    1 => 'Histoire de PHP et des projets li&eacute;s',
  ),
  'next' => 
  array (
    0 => 'history.php.related.php',
    1 => 'Quelques projets li&eacute;s &agrave; PHP',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'fr',
    'path' => 'appendices/history.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="history.php" class="sect1">
  <h2 class="title">Histoire de PHP</h2>
  <div class="sect2" id="history.phpfi">
   <h3 class="title">PHP Tools, FI, Construction Kit, et PHP/FI</h3>
   <p class="para">
    PHP, tel qu&#039;il est connu aujourd&#039;hui, est le successeur d&#039;un produit appelé
    PHP/FI. Créée en 1994 par Rasmus Lerdorf, la toute première incarnation
    de PHP était un simple jeu de binaires CGI écrits en langage C.
    Originairement utilisée pour suivre les visiteurs de son curriculum vitae
    en ligne, il nomme cette suite de scripts &quot;Personal
    Home Page Tools&quot; (ndt : Outils pour page personnelle), plus
    fréquemment appelée &quot;PHP Tools&quot;. Au fil du temps, de plus en plus
    de fonctionnalités sont demandées, et Rasmus réécrit les outils PHP,
    produisant ainsi une implémentation plus large et plus riche.
    Ce nouveau modèle était capable d’interagir avec une base de données,
    mais aussi, fournissait un framework permettant aux utilisateurs de
    développer une application dynamique simple pour le web, comme des
    livres d&#039;or. En Juin 1995, Rasmus 
    <a href="http://groups.google.com/group/comp.infosystems.www.authoring.cgi/msg/cc7d43454d64d133" class="link external">&raquo;&nbsp;fournit</a>
    le code source de PHP Tools au grand public, permettant ainsi aux
    développeurs de l&#039;utiliser comme bon leur semblait. Ceci a également
    permis - et encouragé - aux utilisateurs de fournir des patches pour
    corriger les bogues, mais aussi pour éprouver la stabilité du produit.
   </p>
   <p class="para">
    En septembre de cette année là, Rasmus continua d&#039;élargir PHP et -
    pour un temps très court - supprima le nom PHP. Faisant dorénavant
    référence aux outils sous le nom de FI (abréviation pour &quot;Forms Interpreter&quot;
    ou interpréteur de formulaire), la nouvelle implémentation incluait plusieurs
    fonctionnalités de base que nous connaissons encore aujourd&#039;hui.
    Elle avait ces variables qui ressemblent au Perl, un système
    d&#039;interprétation automatique des variables de formulaires, et une
    syntaxe qui s&#039;intègre facilement dans HTML. La syntaxe elle-même
    était similaire à celle du Perl, bien que beaucoup plus
    limitée, plus simple, et un peu incohérente. En fait, pour embarquer
    du code dans un fichier HTML, les développeurs devaient utiliser
    des commentaires HTML. Malgré le fait que cette méthode ne soit
    pas accueillie avec un grand enthousiasme, FI continua de rassembler
    de plus en plus de monde, et fut accepté comme outil CGI --- mais toujours
    pas comme un langage. Cependant, ceci commença à changer les mois suivants ;
    en octobre 1995, Rasmus livra une nouvelle version totalement réécrite.
    Reprenant le nom de PHP, elle était maintenant nommée (brièvement)
    &quot;Personal Home Page Construction Kit&quot;, et était la première version à mettre
    en avant le fait que PHP était considéré comme une interface de scripts avancée.
    Le langage fut délibérément architecturé pour ressembler à la structure du C,
    rendant ainsi son adoption facile pour les développeurs familiers avec les
    langages comme C, Perl et consorts. Dans un premier temps limité aux systèmes
    Unix et POSIX, son potentiel pour une implémentation sous Windows NT
    commença à être exploré.
   </p>
   <p class="para">
    Le code fut de nouveau repris de zéro, et en Avril 1996,
    combinant les noms des précédentes versions, Rasmus introduisit
    PHP/FI. Cette implémentation de seconde génération commença à faire réellement
    évoluer PHP d&#039;une simple suite d&#039;outils vers un vrai langage de
    programmation. Il incluait un support interne pour les bases de
    données DBM, mSQL et Postgres95, pour les cookies,
    un support des fonctions définies par l&#039;utilisateur, et bien plus.
    Ce mois de Juin, PHP/FI prenait un statut de version 2.0. Un point
    intéressant, cependant, était qu&#039;il n&#039;existait qu&#039;une seule et unique
    version de PHP 2.0. Quand elle est finalement sortie du statut bêta en Novembre
    1997, le moteur d&#039;analyse interne était déjà en cours de réécriture complète.
   </p>
   <p class="para">
    Bien qu&#039;il fournît un cycle de développement très court, il
    continua de gagner en popularité dans ce monde où le développement web
    était encore très récent. En 1997 et 1998, PHP/FI comptait plusieurs
    milliers d&#039;utilisateurs à travers le monde. Le site de surveillance Netcraft,
    en mai 1998, indiquait qu&#039;environ 60 000 domaines avaient des en-têtes
    contenant &quot;PHP&quot;, indiquant ainsi que le serveur hôte l&#039;avait bien installé.
    Ce nombre correspondait à environ 1% des domaines d&#039;Internet de l&#039;époque.
    Malgré ce chiffre impressionnant, la maturation de PHP/FI était condamnée
    à ses limitations ; bien qu&#039;il y ait plusieurs contributeurs mineurs,
    il était encore principalement développé par un seul individu.
   </p>
   <p class="para">
    <div class="example" id="example-1">
     <p><strong>Exemple #1 Exemple de code PHP/FI</strong></p>
     <div class="example-contents">
<div class="htmlcode"><pre class="htmlcode">&lt;!--include /text/header.html--&gt;

&lt;!--getenv HTTP_USER_AGENT--&gt;
&lt;!--ifsubstr $exec_result Mozilla--&gt;
  Hé, vous utilisez Netscape !&lt;p&gt;
&lt;!--endif--&gt;

&lt;!--sql database select * from table where user=&#039;$username&#039;--&gt;
&lt;!--ifless $numentries 1--&gt;
  Désolé, cette ligne n&#039;existe pas&lt;p&gt;
&lt;!--endif exit--&gt;
  Bienvenue &lt;!--$user--&gt; !&lt;p&gt;
  Vous avez &lt;!--$index:0--&gt; crédits sur votre compte.&lt;p&gt;

&lt;!--include /text/footer.html--&gt;</pre>
</div>
     </div>

    </div>
    </p>
   </div>
  <div class="sect2" id="history.php3">
   <h3 class="title">PHP 3</h3>
   <p class="para">
    PHP 3.0 fut la première version du langage tel que nous le connaissons
    actuellement. Trouvant que PHP/FI 2.0 était toujours insuffisant et
    manquait de fonctionnalités nécessaires pour mettre en œuvre une application
    d&#039;eCommerce, qu&#039;ils développaient dans le cadre d&#039;un projet universitaire,
    Andi Gutmans et Zeev Suraski de la ville de Tel Aviv (Israël) commencèrent
    encore une autre réécriture complète de l&#039;analyseur interne en 1997.
    Se rapprochant de Rasmus via le web, ils discutèrent de divers aspects
    de l&#039;implémentation courante et de leur re-développement de PHP.
    Dans une logique d&#039;amélioration du moteur, et pour profiter des utilisateurs existant
    de PHP/FI, Andi, Rasmus et Zeev décidèrent de collaborer dans le développement d&#039;un
    nouvel et indépendant langage de programmation. Ce tout nouveau langage a été
    publié sous un nouveau nom, qui supprima l&#039;idée d&#039;utilisation personnelle
    limitée incluse dans le nom de PHP/FI 2.0. Il fut ainsi tout simplement renommé
    &#039;PHP&#039;, dont la signification devint un acronyme récursif -
    PHP: Hypertext Preprocessor.
   </p>
   <p class="para">
    Une des améliorations notables de PHP 3.0 fut ses capacités
    d&#039;extension. En plus de fournir une infrastructure mature
    pour de multiples bases de données, protocoles, et
    APIs, la facilité d&#039;extension du langage en lui-même attira
    des dizaines de développeurs, qui produisirent de nombreux modules.
    Ce fut sans aucun doute une des clés de l&#039;énorme succès de PHP 3.0.
    Une autre de ces clés fut l&#039;introduction d&#039;un support de programmation
    orientée objet, ainsi qu&#039;une syntaxe de langage bien plus puissante et
    plus consistante.
   </p>
   <p class="para">
    En Juin 1998, avec plusieurs nouveaux développeurs de par le monde
    rejoignant le projet, PHP 3.0 fut annoncé par la nouvelle équipe de
    développement de PHP comme le successeur officiel de PHP/FI 2.0.
    Le développement actif de PHP/FI 2.0, qui avait en réalité cessé
    depuis le mois de Novembre de l&#039;année précédente, était maintenant
    officiellement terminé. Après environ 9 mois de tests publics, lorsque
    l&#039;annonce de la version officielle de PHP 3.0 fut publiée, il
    était déjà installé sur plus de 70.000 domaines à travers le monde, et
    n&#039;était plus limité aux systèmes POSIX. Une petite partie des domaines
    rapportant une installation de PHP étaient installés sur des serveurs
    fonctionnant sous Windows 95, 98, NT, et Macintosh. À son apogée, PHP
    3.0 était installé sur approximativement 10% des serveurs web d&#039;Internet.
   </p>
  </div>
  <div class="sect2" id="history.php4">
   <h3 class="title">PHP 4</h3>
   <p class="para">
    Durant l&#039;hiver 1998, juste après la publication de PHP 3.0,
    Andi Gutmans et Zeev Suraski commencèrent une réécriture du moteur
    interne de PHP. Les objectifs étaient d&#039;améliorer les performances
    de PHP sur les applications complexes, et d&#039;améliorer la modularité du
    code. Ces applications étaient rendues possibles par les nouvelles fonctionnalités
    de PHP 3.0 et le support d&#039;un grand nombre de bases de données et d&#039;APIs, mais
    PHP 3.0 n&#039;était pas conçu pour gérer efficacement des applications si complexes.
   </p>
   <p class="para">
    Le nouveau moteur, appelé &#039;Zend Engine&#039; (combinaison des prénoms de
    Zeev et Andi), atteignit cet objectif avec succès, et la première version
    fut publiée vers la mi-1999. PHP 4.0, s&#039;appuyant sur ce moteur,
    et amélioré par un grand nombre de nouvelles fonctionnalités,
    fut publié officiellement en mai 2000, presque 2 ans après son
    prédécesseur. En plus de performances nettement plus élevées,
    PHP 4.0 apportait le support de nombreux serveurs web, des sessions
    HTTP, la bufferisation de sortie, une sécurité accrue de la gestion des
    informations visiteurs, et plusieurs nouvelles structures de
    langage.
   </p>
  </div>
  <div class="sect2" id="history.php5">
   <h3 class="title">PHP 5</h3>
   <p class="para">
    PHP 5 est sorti en Juillet 2004, après un long développement et plusieurs
    pré-versions. Il est régi par son moteur, le
    <code class="literal">Zend Engine 2.0</code>
    avec un nouveau modèle objet et des dizaines d&#039;autres nouvelles fonctionnalités.
   </p>
   <p class="para">
    L&#039;équipe de développement de PHP regroupe des dizaines de développeurs,
    en plus des dizaines d&#039;autres travaillant sur des projets en rapport
    avec PHP, comme PEAR, PECL, et la documentation, ainsi qu&#039;un réseau d&#039;infrastructure
    sous-jacent d&#039;une centaine de serveurs web individuels sur 6 des 7 continents
    du monde. En s&#039;appuyant sur une estimation basée sur les statistiques
    de l&#039;année précédente, il est convenable de supposer que PHP est maintenant
    installé sur des dizaines, voire même des centaines, de millions de domaines autour
    du monde.
   </p>
  </div>
  <div class="sect2" id="history.php6">
   <h3 class="title">PHP 6</h3>
   <p class="para">
    PHP 6 était censé offrir un support approfondi de l&#039;Unicode dans le moteur
    et le langage. Ce travail a été plus tard abandonné, mais d&#039;autres
    fonctionnalités qui étaient prévues pour PHP 6 ont été incorporées
    dans PHP 5.3 (<a href="language.namespaces.php" class="link">espaces de noms</a>)
    et PHP 5.4 (<a href="language.oop5.traits.php" class="link">traits</a>, syntaxe &quot;courte&quot; des tableaux).
   </p>
  </div>
  <div class="sect2" id="history.php7">
   <h3 class="title">PHP 7</h3>
   <p class="para">
    PHP 7.0 a été publié en 2015, et a introduit une autre version majeure
    du moteur, <code class="literal">Zend Engine 3.0</code>, qui incluait des 
    améliorations significatives de performances (jusqu&#039;à deux fois plus rapide
    que PHP 5.6) et de la consommation mémoire, un support 64 bits cohérent, des améliorations
    sur les exceptions, un générateur de nombres aléatoires sécurisé, l&#039;opérateur
    de <a href="language.operators.comparison.php#language.operators.comparison.coalesce" class="link">fusion null (??)</a>,
    les <a href="language.oop5.anonymous.php" class="link">classes anonymes</a>, et d&#039;autres fonctionnalités.
   </p>
   <p class="para">
    Les versions ultérieures de la série PHP 7 ont introduit plus de fonctionnalités
    comme la <a href="function.list.php" class="link">syntaxe de liste courte</a> (7.1),
    la déclaration de type d&#039;objet en paramètre et en retour (7.2), une nouvelle
    syntaxe flexible pour les <a href="language.types.string.php#language.types.string.syntax.heredoc" class="link">heredoc</a>
    et <a href="language.types.string.php#language.types.string.syntax.nowdoc" class="link">nowdoc</a>
    (7.3), des propriétés typées (7.4), et une nouvelle
    <a href="class.ffi.php" class="link">interface de fonction étrangère</a> (7.4).
   </p>
  </div>
  <div class="sect2" id="history.php8">
   <h3 class="title">PHP 8</h3>
   <p class="para">
    Publié pour la première fois en 2020, PHP 8.0 était une autre mise à jour majeure
    du langage PHP. Il contenait de nombreuses nouvelles fonctionnalités et optimisations incluant
    les <a href="functions.arguments.php#functions.named-arguments" class="link">arguments nommés</a>,
    les <a href="language.types.declarations.php#language.types.declarations.composite.union" class="link">type
    d&#039;unions</a>, les <a href="language.attributes.php" class="link">attributs</a>,
    la <a href="language.oop5.decon.php#language.oop5.decon.constructor.promotion" class="link">promotion de propriétés de constructeur</a>,
    les expressions <a href="control-structures.match.php" class="link"><code class="literal">match</code></a>,
    l&#039;opérateur <a href="language.oop5.basic.php#language.oop5.basic.nullsafe" class="link">nullsafe (<code class="literal">?-&gt;</code>)</a>,
    un nouveau compilateur JIT optimisé, et des améliorations dans le système de types,
    la gestion des erreurs, et la cohérence.
   </p>
   <p class="para">
    Les versions suivantes de la série PHP 8 ont introduit de nouvelles fonctionnalités au langage
    incluant les <a href="language.enumerations.php" class="link">énumérations</a> (8.1),
    les <a href="language.fibers.php" class="link">fibres</a> (8.1),
    les <a href="language.oop5.basic.php#language.oop5.basic.class.readonly" class="link">classes en lecture seules</a> (8.2),
    les types de Forme Normale Disjonctive (DNF) (8.2), et les constantes typées
    de classe (8.3).
   </p>
  </div>
 </div><?php manual_footer($setup); ?>