PHP.mk документација

mysqlnd API за приклучоци

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

mysqlnd.plugin.api.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека mysqlnd.plugin.api.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
mysqlnd API за приклучоци

Референца за `mysqlnd.plugin.api.php` со подобрена типографија и навигација.

mysqlnd.plugin.api.php

mysqlnd API за приклучоци

Следиве се список на функции обезбедени во mysqlnd API на приклучокот:

  • mysqlnd_plugin_register()
  • mysqlnd_plugin_count()
  • mysqlnd_plugin_get_plugin_connection_data()
  • mysqlnd_plugin_get_plugin_result_data()
  • mysqlnd_plugin_get_plugin_stmt_data()
  • mysqlnd_plugin_get_plugin_net_data()
  • mysqlnd_plugin_get_plugin_protocol_data()
  • mysqlnd_conn_get_methods()
  • mysqlnd_result_get_methods()
  • mysqlnd_result_meta_get_methods()
  • mysqlnd_stmt_get_methods()
  • mysqlnd_net_get_methods()
  • mysqlnd_protocol_get_methods()

Не постои формална дефиниција за тоа што е приклучок и како работи механизмот за приклучоци.

Компоненти што често се наоѓаат во механизмите за приклучоци се:

  • Менаџер на приклучоци
  • API на приклучоци
  • Сервиси на апликацијата (или модули)
  • API на сервисите на апликацијата (или API на модулите)

На mysqlnd концептот на приклучоци ги користи овие карактеристики, и дополнително ужива отворена архитектура.

Без Ограничувања

Приклучокот има целосен пристап до внатрешните работи на mysqlnd. Нема безбедносни ограничувања или рестрикции. Сè може да се презапише за да се имплементираат пријателски или непријателски алгоритми. Се препорачува да распоредувате приклучоци само од доверлив извор.

Како што претходно беше дискутирано, приклучоците можат слободно да користат покажувачи. Овие покажувачи не се ограничени на кој било начин и можат да покажуваат во податоците на друг приклучок. Едноставна аритметика на поместување може да се користи за читање податоци од друг приклучок.

Се препорачува да пишувате кооперативни приклучоци и секогаш да го повикувате родителскиот метод. Приклучоците секогаш треба да соработуваат со mysqlnd itself.

Проблеми: пример за синџир и соработка
Проширување mysqlnd.query() покажувач стек на повици ако се повикува родител
ext/mysqlnd mysqlnd.query() mysqlnd.query
ext/mysqlnd_cache mysqlnd_cache.query()
  1. mysqlnd_cache.query()
  2. mysqlnd.query
ext/mysqlnd_monitor mysqlnd_monitor.query()
  1. mysqlnd_monitor.query()
  2. mysqlnd_cache.query()
  3. mysqlnd.query

Во овој случај, се вчитуваат приклучоци за кеш (ext/mysqlnd_cache) и монитор (ext/mysqlnd_monitor) приклучок. И двата наследуваат од Connection::query(). Регистрацијата на приклучокот се случува на MINIT користејќи ја логиката прикажана претходно. PHP ги повикува екстензиите по азбучен ред по дифолт. Приклучоците не се свесни еден за друг и не поставуваат зависности од екстензии.

По дифолт, приклучоците го повикуваат родителскиот имплементација на методот query во нивната изведена верзија на методот.

Рекапитулација на PHP екстензии

Ова е рекапитулација на она што се случува кога се користи примерен приклучок, ext/mysqlnd_plugin, кој го изложува mysqlnd C API за приклучоци на PHP:

  • Секоја PHP MySQL апликација се обидува да воспостави врска со 192.168.2.29
  • PHP апликацијата ќе користи или ext/mysql, ext/mysqli or PDO_MYSQL. Сите три PHP MySQL екстензии користат mysqlnd за воспоставување на врска со 192.168.2.29.
  • Mysqlnd го повикува својот метод connect, кој е наследен од ext/mysqlnd_plugin.
  • ext/mysqlnd_plugin го повикува userspace hook proxy::connect() регистриран од корисникот.
  • userspace hook ја менува IP адресата на хостот за поврзување од 192.168.2.29 на 127.0.0.1 и ја враќа воспоставената врска од parent::connect().
  • ext/mysqlnd_plugin ја извршува еквивалентната операција на parent::connect(127.0.0.1) со повикување на оригиналниот mysqlnd метод за воспоставување врска.
  • ext/mysqlnd воспоставува врска и се враќа на ext/mysqlnd_plugin. ext/mysqlnd_plugin се враќа исто така.
  • Без оглед на тоа кој PHP MySQL екстензија бил користен од апликацијата, таа добива врска до 127.0.0.1. Самиот PHP MySQL екстензија се враќа на PHP апликацијата. Кругот е затворен.

Белешки од корисници

Нема белешки од корисници за оваа страница.
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.