Обзор терминологии
В этом разделе рассказывается про имеющиеся возможности взаимодействия между PHP приложением и базой данных MySQL.
Что такое API?
Интерфейс программирования приложений(Application Programming Interface или API), описывает классы, методы, функции и переменные, которые ваше приложение должно использовать для выполнения поставленной задачи. В случае PHP, API для доступа к базам данных доступны в качестве расширений PHP.
API может быть процедурным или объектно ориентированным. В процедурном API, для совершения необходимых действий вы вызываете функции, тогда как в объектно ориентированном API вы инстанциируете классы и вызываете их методы. Более предпочтительным является использование объектно ориентированого API, так как подобный подход более современен и позволяет лучше организовать код.
Если вы пишите PHP приложение, которому необходимо взаимодействовать с базой данных MySQL, то у вас есть несколько API на выбор. В этом документе рассказывается про то, какие API есть и как выбрать наиболее подходящее для вашего приложения.
Что такое Коннектор?
В документации MySQL, термин коннектор(connector) отсылает к той части программного обеспечения, которая позволяет вашему приложению соединиться с базой данных MySQL. MySQL предоставляет коннекторы для многих языков программирования, в том числе и для PHP.
Если ваше приложение должно взаимодействовать с базой данных, вы должны написать PHP код для выполнения таких задач как соединение с базой данных, выполнение запросов и прочих функций. Для предоставления вашему приложению необходимого API и для обеспечения взаимодествия между приложением и базой данных требуется специальное программное обеспечение. Это ПО обычно называют коннектором. И именно оно позволяет вашему приложению соединиться(connect) с базой данных.
Что такое Драйвер?
Драйвер - это специализированное ПО, созданное для взаимодействием с определенным сервером баз данных. Драйвер также может использовать сторонние библиотеки, такие как "MySQL Client Library" или "MySQL Native Driver". Эти библиотеки реализуют низкоуровневый протокол взаимодействия с сервером MySQL.
Для примера, коннектор PHP Data Objects (PDO) может использовать различные специализированные драйверы для различных баз данных. Один из них "PDO MYSQL driver", предназначенный для взаимодействия с MySQL.
Иногда люди используют термины коннектор и драйвер, понимая
под ними одно и то же. Это неправильно и может привести к путанице.
В документации относящейся к MySQL, термин драйвер
обозначает ПО, предоставляющее специфичную для конкретного
сервера баз данных часть коннектора.
Что такое Расширение?
В документации PHP вы наверняка сталкивались с термином
расширение(extension). Код PHP
состоит из базового функционала(ядра) и опциональных расширений,
дополняющих функционал ядра. Расширения связанные с MySQL,
такие как mysqli
и mysql
,
реализованы с использованием фреймворка расширений PHP.
Обычно, расширения предоставляют API для программиста, что бы он мог использовать их функционал в своих программах. Однако существуют расширения не предоставляющие никакого API.
Например расширение "PDO MySQL driver" не предоставляет никакого API для разработчика. Вместо этого оно предоставляет интерфейс для вышестоящего уровня PDO.
Термины API и Расширение обозначают разные вещи, так как расширение может не предоставлять никакого API.