Aperçu de la terminologie
Cette section fournit une introduction aux options qui vous sont disponibles lors du développement d'une application PHP qui doit interagir avec une base de données MySQL.
Qu'est-ce qu'une API ?
Une interface de programmation d'application, ou API, définit les classes, les méthodes, les fonctions et les variables dont votre 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.
Les APIs peuvent être procédurales ou orientées objet. Avec une API procédurale, vous appelez des fonctions pour réaliser vos tâches, avec une API orientée objet, vous instanciez les classes, puis vous appelez 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.
Lors de l'écriture d'applications PHP qui ont besoin de se connecter à un serveur MySQL, il y a plusieurs options de l'API disponibles. Ce document va aborder ce qui est disponible, et comment choisir la meilleure solution pour votre application.
Qu'est-ce qu'un connecteur ?
Dans la documentation MySQL, le terme connecteur se réfère à la partie du programme qui autorise votre application à se connecter au serveur de base de données MySQL. MySQL fournit des connecteurs pour bons nombres de langages, incluant PHP.
Si votre application PHP a besoin de communiquer avec un serveur de base de données, vous devez écrire votre 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'autres tâches relatives à la base de données. Le programme est requis pour fournir l'API à utiliser par votre application PHP, mais aussi pour gérer la communication entre votre 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'il autorise votre application à se connecter au serveur de base de données.
Qu'est-ce qu'un driver ?
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.
Par le biais d'un exemple, la couche d'abstraction de base de données PHP Data Objects (PDO) peut utiliser un des drivers spécifiques au base de données. Un de ces drivers disponible est le driver PDO MYSQL, qui fournit une interface avec le serveur MySQL.
Quelques fois, des personnes utilisent les termes connecteur et driver à l'envers, ce qui peut porter à confusion. Dans la documentation MySQL, le terme "driver" est réservé au programme qui fournit la partie spécifique à la base de données d'un connecteur.
Qu'est-ce qu'une extension ?
Dans la documentation PHP, vous trouverez un autre terme - extension. Le code PHP est constitué d'un coeur, avec des extensions optionnelles permettant d'étendre les fonctionnalités du coeur. Les extensions PHP relatives aux bases de données, comme l'extension mysqli et l'extension mysql sont implémentées en utilisant le framework des extensions PHP.
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'extension PHP n'expose aucune API au programmeur PHP.
L'extension driver PDO MySQL, par exemple, n'expose aucune API au programmeur PHP, mais fournit une interface à la couche PDO.
Les termes API et extension ne doivent pas être vus comme signifiant la même chose, car une extension n'expose pas forcément une API au programmeur.