-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathpackage.xml
More file actions
113 lines (113 loc) · 4.16 KB
/
Copy pathpackage.xml
File metadata and controls
113 lines (113 loc) · 4.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
<?xml version="1.0" encoding="UTF-8"?>
<package packagerversion="1.10.13" version="2.0" xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0 http://pear.php.net/dtd/tasks-1.0.xsd http://pear.php.net/dtd/package-2.0 http://pear.php.net/dtd/package-2.0.xsd">
<name>voyager</name>
<channel>pecl.php.net</channel>
<summary>Runtime function and method redefinition for PHP</summary>
<description>Voyager allows you to redefine existing user-defined functions and class methods at runtime. This is primarily intended for debugging, hot-fixing, and instrumentation in production environments. It supports closure-based API, inheritance propagation, magic method handling, and automatic reflection cleanup.</description>
<lead>
<name>George King</name>
<user>george</user>
<email>george@betterde.com</email>
<active>yes</active>
</lead>
<date>2026-05-06</date>
<version>
<release>8.2.2</release>
<api>8.2.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="https://opensource.org/licenses/MIT">MIT License</license>
<notes>
- Fix voyager_method_redefine() losing ZEND_ACC_STATIC when redefining static methods without explicit flags
- Preserve original method visibility, static, and return-by-reference flags by default when redefining methods
- Keep explicit method flags authoritative when callers provide them
</notes>
<contents>
<dir name="/">
<file name="config.m4" role="src" />
<file name="php_voyager.h" role="src" />
<file name="voyager.h" role="src" />
<file name="voyager.c" role="src" />
<file name="voyager_functions.c" role="src" />
<file name="voyager_methods.c" role="src" />
<file name="voyager_common.c" role="src" />
<file name="voyager.stub.php" role="src" />
<file name="voyager_arginfo.h" role="src" />
<dir name="tests">
<file name=".gitkeep" role="test" />
</dir>
</dir>
</contents>
<dependencies>
<required>
<php>
<min>8.1.0</min>
<max>8.2.99</max>
</php>
<pearinstaller>
<min>1.4.0</min>
</pearinstaller>
</required>
</dependencies>
<providesextension>voyager</providesextension>
<extsrcrelease />
<changelog>
<release>
<date>2026-05-06</date>
<version>
<release>8.2.2</release>
<api>8.2.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="https://opensource.org/licenses/MIT">MIT License</license>
<notes>
- Fix voyager_method_redefine() losing ZEND_ACC_STATIC when redefining static methods without explicit flags
- Preserve original method visibility, static, and return-by-reference flags by default when redefining methods
- Keep explicit method flags authoritative when callers provide them
</notes>
</release>
<release>
<date>2026-05-02</date>
<version>
<release>8.2.1</release>
<api>8.2.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="https://opensource.org/licenses/MIT">MIT License</license>
<notes>
- Fix request lifecycle isolation for function and method redefinitions
- Restore original functions and methods during request shutdown to avoid leaking changes across PHP-FPM requests
- Fix repeated voyager_method_redefine() calls in the same PHP-FPM worker after a previous request restored a method
- Add request-scoped restore cleanup for replaced functions and methods
</notes>
</release>
<release>
<date>2026-04-18</date>
<version>
<release>8.2.0</release>
<api>8.2.0</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="https://opensource.org/licenses/MIT">MIT License</license>
<notes>
- Initial release of voyager extension
- voyager_function_redefine(): Redefine user-defined functions at runtime
- voyager_method_redefine(): Redefine class methods with inheritance propagation
- Supports both closure and string-body calling modes
- Automatic cache invalidation and reflection object cleanup
</notes>
</release>
</changelog>
</package>