<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/mysql.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'fr',
  ),
  'this' => 
  array (
    0 => 'mysqlinfo.terminology.php',
    1 => 'Aper&ccedil;u de la terminologie',
    2 => 'Aper&ccedil;u de la terminologie',
  ),
  'up' => 
  array (
    0 => 'mysql.php',
    1 => 'Aper&ccedil;u des drivers PHP MySQL',
  ),
  'prev' => 
  array (
    0 => 'mysql.php',
    1 => 'Aper&ccedil;u des drivers PHP MySQL',
  ),
  'next' => 
  array (
    0 => 'mysqlinfo.api.choosing.php',
    1 => 'Choisir une API',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'fr',
    'path' => 'reference/mysqlinfo/set.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="mysqlinfo.terminology" class="chapter">
   <h1 class="title">Aperçu de la terminologie</h1>

   <p class="simpara">
    Cette section fournit une introduction aux options qui sont disponibles
    lors du développement d&#039;une application PHP qui doit interagir avec
    une base de données MySQL.
   </p>

   <p class="simpara">
    <strong>Qu&#039;est-ce qu&#039;une API ?</strong>
   </p>

   <p class="simpara">
    Une interface de programmation d&#039;application, ou API, définit les classes,
    les méthodes, les fonctions et les variables dont l&#039;application
    a besoin pour réaliser les tâches désirées. Dans le cas des applications
    PHP qui ont besoin de communiquer avec des bases de données, les APIs
    nécessaires sont habituellement exposées via des extensions PHP.
   </p>

   <p class="simpara">
    Les APIs peuvent être procédurales ou orientées objet. Avec une API
    procédurale, on appelle des fonctions pour réaliser les tâches,
    avec une API orientée objet, on instancie les classes, puis l&#039;on
    appelle les méthodes sur les objets résultants. La seconde interface
    est généralement préférée car elle est plus moderne et permet
    de mieux organiser le code source.
   </p>

   <p class="simpara">
    Lors de l&#039;écriture d&#039;applications PHP qui ont besoin de se connecter
    à un serveur MySQL, il y a plusieurs options de l&#039;API disponibles.
    Ce document va aborder ce qui est disponible, et comment choisir
    la meilleure solution pour l&#039;application.
   </p>

   <p class="simpara">
    <strong>Qu&#039;est-ce qu&#039;un connecteur ?</strong>
   </p>

   <p class="simpara">
    Dans la documentation MySQL, le terme <em>connecteur</em>
    se réfère à la partie du programme qui autorise l&#039;application
    à se connecter au serveur de base de données MySQL. MySQL fournit
    des connecteurs pour bon nombre de langages, incluant PHP.
   </p>

   <p class="simpara">
    Si l&#039;application PHP a besoin de communiquer avec un serveur
    de base de données, il faut écrire le code PHP pour effectuer
    des tâches comme se connecter au serveur de base de données,
    requêter la base de données ainsi que d&#039;autres tâches relatives
    à la base de données. Le programme est requis pour fournir l&#039;API
    à utiliser par l&#039;application PHP, mais aussi pour gérer
    la communication entre l&#039;application et le serveur de base
    de données, en utilisant des bibliothèques intermédiaires
    au besoin. Ce programme est généralement appelé connecteur,
    vu qu&#039;il autorise l&#039;application à se <em>connecter</em>
    au serveur de base de données.
   </p>

   <p class="simpara">
    <strong>Qu&#039;est-ce qu&#039;un driver ?</strong>
   </p>

   <p class="simpara">
    Un driver est une partie de programme dont le but est de communiquer
    avec un type spécifique de serveur de base de données. Le driver
    peut également appeler une bibliothèque, comme la bibliothèque
    cliente MySQL ou le driver natif MySQL. Ces bibliothèques implémentent
    le protocole bas niveau utilisé pour communiquer avec le serveur
    de base de données MySQL.
   </p>

   <p class="simpara">
    Par le biais d&#039;un exemple, la couche d&#039;abstraction de base de données
    <a href="mysqli.overview.php#mysqli.overview.pdo" class="link">PHP Data Objects (PDO)</a> peut
    utiliser un des drivers spécifiques aux bases de données. Un des drivers
    disponibles est le driver PDO MYSQL, qui fournit une interface
    avec le serveur MySQL.
   </p>

   <p class="simpara">
    Quelques fois, des personnes utilisent les termes connecteur et driver
    à l&#039;envers, ce qui peut porter à confusion. Dans la documentation
    MySQL, le terme <q class="quote">driver</q> est réservé au programme qui
    fournit la partie spécifique à la base de données d&#039;un connecteur.
   </p>

   <p class="simpara">
    <strong>Qu&#039;est-ce qu&#039;une extension ?</strong>
   </p>

   <p class="simpara">
    Dans la documentation PHP, on trouvera un autre terme -
    <em>extension</em>. Le code PHP est constitué
    d&#039;un cœur, avec des extensions optionnelles permettant
    d&#039;étendre les fonctionnalités du cœur. Les extensions PHP relatives
    aux bases de données, comme l&#039;extension <code class="literal">mysqli</code>,
    sont implémentées en utilisant le framework des extensions PHP.
   </p>

   <p class="simpara">
    Typiquement, une extension expose une API au programmeur PHP, lui
    permettant quelques facilités lors de la programmation. Cependant,
    quelques extensions qui utilisent le framework d&#039;extension PHP
    n&#039;exposent aucune API au programmeur PHP.
   </p>

   <p class="simpara">
    L&#039;extension driver PDO MySQL, par exemple, n&#039;expose aucune API
    au programmeur PHP, mais fournit une interface à la couche PDO.
   </p>

   <p class="simpara">
    Les termes API et extension ne doivent pas être vus comme signifiant
    la même chose, car une extension n&#039;expose pas forcément une API au
    programmeur.
   </p>
  </div>
<?php manual_footer($setup); ?>