Runkit7 : For all those things you.... probably shouldn't have been doing anyway.... but surely do!
Replace, rename, and remove user defined functions, methods, and constants.
Define customized superglobal variables for general purpose use.
License: BSD License (3 Clause)
- Fix edge case copying internal functions in runkit7_function_redefine
- Avoid conflicts with other extensions that use reserved memory slots for internal function definitions.
- Fix compilation and test errors in php 8.1
- Allow using objects in global constants and class constants in php 8.1+ (https://wiki.php.net/rfc/new_in_initializers)
- Make runkit_constant_redefine fail if the constant does not already exist
- Make runkit_constant_remove/redefine fail on enum cases (support for modifying enum cases is not implemented)
- Fix build failure in PECL releases due to missing files in the 4.0.0a1 archive.
- Properly reference count references to file names in php 8.0 when copying functions
- Remove `runkit7_import()`. This had known crashes/segfaults in php 7.3+ that have not been straightforward to fix (after multiple attempts)
due to changes to PHP's internals and changes to late static binding, and offered an incomplete set of functionality.
(e.g. could not override properties)
This was also not integrated with runkit7's tracking of manipulated methods/functions/properties.
- Drop support for php 7.1. Security support for php 7.1 from php-src ended in December 2019
and runkit7 requires a lot of work to verify that changes or new features work correctly with the internals of php in all PHP versions.
- Remove disabled code, constants, and ini settings related to the sandbox feature.
Runkit7 has never supported sandboxes or runkit_lint due to changes to internals in php7 making it impractical.
- Remove runkit7_object_id() - PHP 7.2 adds spl_object_id() to do the same thing.
- Fix build failure in php 8.0-dev - this extension's support for php 8 is still incomplete and experimental.
- Add parameter default constant names to reflection (php 8 only).
|3.1.0a1||- Support php 7.4.|
Runkit7 3.0 finishes changing this extension's name from "runkit" to "runkit7".
THIS WILL REQUIRE CHANGES TO YOUR BUILD SCRIPTS AND PHP.INI FILES.
This change was made at the request of PECL admins, to comply with naming and packaging standards.
- The compiled shared object name has been changed from `runkit.so` to `runkit7.so` (Mac/Linux) and `php_runkit.dll` to `php_runkit7.dll` (Windows)
(php.ini files should be changed to reference `extension=runkit7.so` or `extension=php_runkit7.dll`)
- The configure flag names have been changed from flags such as `--enable-runkit` / `--enable-runkit-modify` to `--enable-runkit7` / `--enable-runkit7-modify`
- Code using `extension_loaded('runkit')` should be changed to `extension_loaded('runkit7')` (as well as uses of ReflectionExtension, etc.)
- The ini options `runkit.superglobal` and `runkit.internal_override` are unaffected.
Changes in 3.0.0
- Update documentation
- Remove RUNKIT_VERSION
- It is now possible to disable superglobal support (--disable-runkit7-super was fixed)
- Classkit compatibility functions/constants have been removed.