Esta sección proporciona una introducción de las opciones disponibles al desarrollar una aplicación de PHP que necesite interactuar con una base de datos MySQL.
¿Qué es una API?
Una Interfaz de Programación de Aplicaciones (o API de sus siglas en inglés), define las clases, métodos, funciones y variables que la aplicación necisita llamar para realizar una tarea. En el caso de aplicaciones de PHP que necesiten comunicarse con bases de datos, las APIs necesarias normalmente son expuestas mediante extensiones de PHP.
Las APIs pueden ser procedimentales y orientadas a objetos. Con una API procedimental se llaman a funciones para realizar tareas, con una API orientada a objetos se instancian clases y luego se llamana métodos sobre los objetos resultantes. De las dos, la última normalemte es la interfaz preferida, ya que es más moderna y conduce a un código mejor organizado.
Al escribir aplicaciones de PHP que necesitan conectarse a un servidor de MySQL, existen varias opciones de APIs disponibles. Este documento trata sobre lo que está disponible y cómo elegir la mejor solución para la aplicación.
¿Qué es un Conector?
En la documentación de MySQL, el término conector se refiere a una pieza de software que permite a las aplicaciones conectarse con el servidor de bases de datos MySQL. MySQL proporciona conectores para muchos lenguajes, incluido PHP.
Si una aplicación de PHP necesita comunicarse con un servidor de bases de datos se necesitará escribir código de PHP para llevar a cabo actividades como conectar al servidor de la base de datos, consultar a la base de datos y otras funciones relacionas con la base de datos. Se requiere software para proporcionar la API que la aplicacion de PHP usraá, y también manejar la comunicación entre la aplicación y el servidor de la base de datos, posiblemente usanto otras bibliotecas intermediarias cuando sea necesario. Este software se conoce generalmente como conector, ya que permite a la aplicación conectarse al servidor de la base de datos.
¿Qué es un Controlador?
Un controlador (o driver) es una pieza de software diseñada para la comunicación con un tipo específico de servidor de bases de datos. El controlador también llama a una biblioteca, como la Biblioteca Cliente de MySQL o el Controlador Nativo de MySQL. Estas bibliotecas implementan el protocolo de bajo nivel usado para comunicarse con el servidor de bases de datos MySQL.
Mediante un ejemplo, la capa de abstracción de bases de datos Objetos de Datos de PHP (PDO) pueden usar uno de los varios controladores específicos de bases de datos. Uno de los controladores disponibles es el controlador MySQL de PDO, que le permite funcionar junto con el servidor MySQL.
A veces las personas usan los términos conector y controlador intercambiablemente, y esto puede ser confuso. El la documentación relacionada con MySQL, el término "controlador" está reservado para el software que proporciona la parte estpecífica de bases de datos de un paquete conector.
¿Qué es una Extensión?
En la documentación de PHP se encontrará con otro término - extensión. El código de PHP consiste en un núcleo, con extensiones opcionales para la funcionalidad del núcleo. Las extensiones relacionadas con MySQL de PHP, como la extensión mysqli, y la extensión mysql, están implementadas usando el framework de extensiones de PHP.
Una extensión típicamente expone una API al programador de PHP, para poder usar sus facilidades programáticamente. Sin embargo, algunas extensiones que usan el framework de extensiones de PHP no exponen una API al programador de PHP.
La extensión del controlador MySQL de PDO, por ejemplo, no expone una API al programador de PHP, pero proporciona una interfaz para la capa de PDO superior.
Los términos API y extensión no deberían tomarse como si fuesen la misma cosa, una extensión puede no exponer necesariamente una API al programador.