L'API du plugin du driver natif MySQL est une fonctionnalité
du driver natif MySQL, ou mysqlnd.
Le plugin Mysqlnd opère sur la couche entre
les applications PHP et le serveur MySQL. Il est comparable
à un proxy MySQL. Un proxy MySQL opère sur une couche entre toutes
les applications clientes MySQL, par exemple, une application PHP
et un serveur MySQL. Le plugin Mysqlnd
peut entreprendre des tâches typiques de proxy MySQL comme
l'équilibrage de charge, ainsi que le suivi et l'optimisation
des performances. En raison d'une architecture et d'une localisation
différente, le plugin mysqlnd n'a pas tous les
inconvénients d'un proxy MySQL. Par exemple, avec le plugin, il
n'y a pas qu'un seul point d'échec, pas de serveur de proxy dédié
à déployer, et pas de nouveau langage à apprendre (Lua).
Un plugin mysqlnd peut être exécuté comme une extension
à mysqlnd. Un plugin peut intercepter la majorité des
fonctions mysqlnd. Les fonctions mysqlnd
sont appelées par l'extension PHP MySQL comme
ext/mysql, ext/mysqli, et
PDO_MYSQL. Comme résultat, il est possible pour un
plugin mysqlnd d'intercepter tous les appels effectués
par ces extensions depuis une application cliente.
Les appels aux fonctions internes mysqlnd peuvent
également être interceptés ou remplacés. Il n'y a aucune restriction
sur la manipulation des tables de fonctions internes mysqlnd.
Il est possible de définir des actions pour faire que lorsque
certaines fonctions mysqlnd sont appelées
par l'extension qui utilise mysqlnd, l'appel
est redirigé vers la fonction appropriée du plugin
mysqlnd. La possibilité de manipuler les tables
de fonctions internes mysqlnd dans ce sens permet
un maximum de flexibilité.
Le plugin Mysqlnd est en faite, une extension PHP,
écrit en C, qui utilise l'API du plugin mysqlnd
(qui est compilé dans le driver natif MySQL, mysqlnd).
Le plugin peut être à 100% transparent pour les applications PHP. Aucune
modification aux applications n'est nécessaire car le plugin opère
sur une couche différente. Le plugin mysqlnd
peut être utilisé dans une couche en dessous de mysqlnd.
La liste suivante représente quelques applications possibles
du plugin mysqlnd.
PLugins du driver natif MySQL disponibles
Il y a déjà plusieurs plugins mysqlnd de disponible.