Переименование Функций во время времени выполнения в PHP

В PHP 5.3 там способ переименовать функцию или "сцепить" функцию.

Существует rename_function() в "APD", который был поврежден с тех пор ~2004. При попытке создать его на PHP 5.3, то Вы получите эту ошибку:

'struct _zend_compiler_globals' has no member named 'extended_info'

Это - действительно легкая ошибка зафиксировать, просто изменить эту строку:

GC(extended_info) = 1;

кому:

CG(compiler_options) |= ZEND_COMPILE_EXTENDED_INFO;

Я изменил свой php.ini, и APD обнаруживается в моем phpinfo (), как он должен. Однако, когда я звоню rename_function() страница PHP не загружается, и я вкладываю отказ сегментации мой /var/log/apache2/error.log.

Там должен так или иначе зафиксировать APD для работы с современной версией PHP? Или там другой метод должен переименовать функции? С какой стати жизненная функция не в php!??!?! (Должен любить Python :)

8
задан Artefacto 17 May 2010 в 03:21
поделиться

1 ответ

Runkit trunk совместим с 5.3+.

svn checkout http://svn.php.net/repository/pecl/runkit/trunk runkit
cd runkit
phpize
./configure
make && make install

Добавьте extension=runkit.so в php.ini (или runkit.ini в conf.d)

Для использования runkit_function_rename() вам также придется перекомпилировать php с флагом конфигурации --enable-maintainer-zts. (Будь ты проклят, zend!)

2
ответ дан 5 December 2019 в 22:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: