Описание тега php-extension

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

Язык PHP можно улучшить за счет использования расширений, которые предоставляют сценариям PHP новые внутренние функции, классы, типы ресурсов, потоки (а также обертки и фильтры потоков) и, в целом, могут делать все, что может делать собственная программа.. Расширения обычно пишутся для того, чтобы:

  • Оберните собственную библиотеку, которая обычно написана на C или C++.
  • Реализуйте код PHP на языке, который предлагает больше возможностей оптимизации, например C, чтобы страницы могли обслуживаться быстрее и / или одновременно обслуживалось больше страниц.
  • Классы реализации / функций, которые, будучи ближе к ядру PHP, могут делать вещи, которые в противном случае были бы невозможны (например, динамически добавлять / удалять функции из таблицы функций, обходить open_basedir).

PHP написан на C и имеет API C, доступный для расширений, поэтому они обычно пишутся на этом языке. Однако единственное требование состоит в том, чтобы получившееся расширение могло взаимодействовать с API PHP, обрабатывать свои структуры данных и могло быть загружено с помощью механизма загрузки расширений PHP.

SWIG можно использовать для упрощения упаковки собственных библиотек. См. Также PHP4Delphi, который позволяет встраивать PHP в Delphi и другие приложения, а также писать расширения PHP в Delphi.

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

К сожалению, официальной и актуальной справки о том, как писать расширения PHP, нет. Однако см. Этот ответ для нескольких ресурсов.