Раздел описывает инструменты, которые помогают программистам разрабатывать PHP-приложения, которые взаимодействуют с базой данных MySQL.
Об API-интерфейсе
Программный интерфейс приложения (англ. Application Programming Interface, API) определяет набор классов, методов, функций и переменных, к которым приложению потребуется обращаться, чтобы выполнить поставленные задачи. PHP-приложения взаимодействуют с базами данных через API-интерфейсы, которые приложениям обычно открывают PHP-модули.
Программисты взаимодействуют с модулями через процедурный или объектно-ориентированный API-интерфейс. При работе через процедурный API задачи выполняют путём вызова функций, при взаимодействии через объектно-ориентированный API-интерфейс создают экземпляры классов, а затем вызывают методы этих объектов. Из этих двух интерфейсов часто выбирают последний, поскольку код в объектно-ориентированном стиле лучше организован, что снижает сложность восприятия кода и упрощает тестирование и поддержку.
Язык программирования PHP предлагает разработчикам несколько API-интерфейсов, через которые PHP-приложения взаимодействуют с базами данных MySQL. Документ описывает эти интерфейсы и даёт рекомендации по выбору конкретного способа подключения к базе данных из приложения.
О коннекторе
В MySQL-документации термин коннектор (англ. connector) относится к части программного обеспечения, которая разрешает приложению подключаться к серверу баз данных MySQL. БД MySQL предоставляет коннекторы для разных языков программирования, включая язык PHP.
Разработчику потребуется написать PHP-код, чтобы PHP-приложение научилось взаимодействовать с сервером баз данных: подключаться, отправлять запросы и выполнять другие операции, которые связаны с базой данных. Серверу баз данных потребуется ПО, чтобы предоставить API-интерфейс, через который PHP-приложение будет взаимодействовать с сервером, и чтобы управлять обменом информацией между приложением и сервером баз данных, для чего иногда также требуются промежуточные библиотеки. Это программное обеспечение называется коннектором, поскольку разрешает приложению подключаться (англ. to connect) к серверу баз данных.
О драйвере
Драйвер — часть программного обеспечения, которую разработали для взаимодействия приложения с конкретным типом сервера баз данных. Приложение вызывает методы коннектора, тот обращается к своему драйверу конкретной СУБД, а драйвер со своей стороны обращается к нижележащим библиотекам — клиентской библиотеке MySQL Client Library или встроенному драйверу MySQL Native Driver. Эти библиотеки реализуют низкоуровневый протокол взаимодействия с MySQL-сервером баз данных.
Например, PHP-модуль PDO, который поддерживает доступ к базам данных на уровне абстракции, содержит набор драйверов для доступа к конкретным базам данных. В список доступных модулю драйверов входит драйвер PDO_MYSQL, который разрешает модулю PDO взаимодействовать с сервером MySQL.
Термины «коннектор» и «драйвер» иногда употребляют как синонимы,
это сбивает с толку. В MySQL-документации термин драйвер
зарезервировали за программным обеспечением, которое предоставляет
часть пакета коннектора для конкретной базы данных.
О модуле
В PHP-документации встречается ещё один термин — модуль.
Код самого PHP состоит из ядра и дополнительных модулей, которые расширяют
функциональность ядра. Для работы с СУБД MySQL ядро PHP расширили модулем
mysqli
и модулем PDO с MySQL-драйвером. Оба модуля включили
в инфраструктуру модулей языка PHP.
Обычно модули предоставляют PHP-программисту API-интерфейс, через который разработчик получает доступ к функциям модуля программно. При этом отдельные модули в инфраструктуре PHP-модулей не раскрывают для программиста никаких интерфейсов.
MySQL-драйвер модуля PDO, например, не раскрывает API-интерфейс для программиста, но предоставляет интерфейс вышележащему абстрактному слою, который представляет модуль PDO.
Термины «API-интерфейс» и «модуль» нельзя воспринимать как одно и то же, поскольку модуль не обязан раскрывать API-интерфейс для программиста.