Можно ли добавить новые функции в PHP? - PullRequest
2 голосов
/ 13 декабря 2011

Я хотел бы добавить функцию в PHP, чтобы я мог использовать ее в любом скрипте, работающем на моем сервере. Можно ли зарегистрировать функцию, как если бы она была родной от PHP? Есть ли в PHP какой-нибудь файл конфигурации, в котором я могу зарегистрировать новые глобальные / собственные функции?

Нет намерений использовать его в производстве, мне просто интересно, как этого добиться.

Ответы [ 4 ]

5 голосов
/ 13 декабря 2011

Вы можете написать расширения на C или C ++ , в частности написать или использовать привязки библиотеки с SWIG или FFI . Но это немного усилий и целесообразно, только если вы имели в виду скомпилированные «нативные» функции.

Ленивая опция добавления новых основных функций в PHP через config - это настройка auto_prepend_file= php.ini. Это позволяет зарегистрировать скрипт, который исполняется раньше всего. (Я использую это для исправления магических кавычек на некоторых серверах или всегда для того, чтобы phpquery был доступен для тестирования CLI.)

5 голосов
/ 13 декабря 2011

Вы можете использовать «Глобальное включение» (определено в php.ini)

Читать это (руководство php.net)

auto-append-file и автоматический перед именем-файла

4 голосов
/ 13 декабря 2011

В руководстве имеется полная глава http://www.php.net/manual/en/internals2.php, посвященная написанию расширений для php, с примерами.

1 голос
/ 13 декабря 2011

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

auto_prepend_file = /path/to/file.php

http://php.net/manual/en/ini.core.php

, иначе вам нужно изучить C и написать расширение

...