Statement on glibc/iconv Vulnerability

Обзор терминологии

Этот раздел рассказывает об инструментах, которые помогают разрабатывать PHP-приложения, которые взаимодействуют с базой данных MySQL.

Что такое API?

Интерфейс прикладного программирования (Application Programming Interface, или API) определяет классы, методы, функции и переменные, которые нужны приложению для решения задачи. Приложениям PHP, которые взаимодействуют с базами данных, необходимые API обычно доступны через PHP-модули.

API-интерфейсы строят в процедурном или объектно-ориентированном стиле. В процедурном API для решения задачи вызывают функции, в объектно-ориентированном API инстанцируют классы, а затем вызывают методы этих объектов. Чаще предпочитают объектно-ориентированный API, поскольку такой подход современнее и помогает лучше организовать код.

При написании PHP-приложений доступно несколько вариантов API для подключения к серверу MySQL. В этом документе обсуждается, что доступно и как выбрать лучшее решение для приложения.

Что такое коннектор?

В документации MySQL термин коннектор (connector) относится к программному обеспечению, которое разрешает приложению подключаться к серверу базы данных MySQL. MySQL предлагает коннекторы для многих языков программирования, включая PHP.

Если приложение будет взаимодействовать с сервером базы данных, потребуется написать PHP-код для соединения с базой данных, выполнения запросов и других функций, которые связаны с базой данных. Программное обеспечение требуется для доступа к API, который будет использовать PHP-приложение, и для управления связью между приложением и сервером базы данных, возможно, с подключением других промежуточных библиотек, где это требуется. Такое ПО называют коннектором, поскольку это программное обеспечение разрешает приложению соединиться (connect) с базой данных.

Что такое драйвер?

Драйвер — часть ПО, которое разработали для взаимодействия с сервером базы данных конкретного типа. Драйвер также может вызывать библиотеку наподобие MySQL Client Library или MySQL Native Driver. Эти библиотеки реализуют низкоуровневый протокол взаимодействия с сервером базы данных MySQL.

В качестве примера, слой абстракции базы данных PHP Data Objects (PDO) умеет работать с драйверами конкретных баз данных. У слоя PDO есть доступ к драйверу PDO MYSQL, который разрешает слою абстракции взаимодействовать с сервером MySQL.

Термины «коннектор» и «драйвер» часто употребляют как взаимозаменяемые, что сбивает с толку. В документации по MySQL термин драйвер зарезервировали для ПО, которое предоставляет часть пакета коннектора для конкретной базы данных.

Что такое модуль?

В документации PHP встречается ещё один термин — модуль (extension). Код PHP состоит из ядра, к которому подключают дополнительные модули для расширения основной функциональности. PHP-модуль mysqli для работы с MySQL реализовали через инфраструктуру модулей PHP.

Модули обычно открывают программисту доступ к API, который разрешает пользоваться средствами модуля программно. Однако отдельные модули, которые работают с платформой PHP-модулей, не открывают PHP-программисту доступ к API.

Модуль драйвера PDO MySQL, например, не раскрывает PHP-программисту API, но открывает интерфейс к слою PDO, который лежит над уровнем драйвера.

У терминов API и «модуль» разные значения, поскольку модуль не обязан открывать программисту API.

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top