Kamil Tekiela
eef0f71aa7
ext/reflection: Make properties readonly ( #24282 )
2026-10-22 15:34:57 +01:00
Gina Peter Banyard
9e9445f742
ext/reflection: add namespace methods to ReflectionAttribute
...
Add the ReflectionAttribute::inNamespace(), ReflectionAttribute::getNamespaceName(), and ReflectionAttribute::getShortName() methods.
Closes GH-19556
2026-07-30 21:15:35 +01:00
d0852d54ba
[RFC] Add DocComments for function parameters ( #21279 )
...
RFC: https://wiki.php.net/rfc/parameter-doccomments
---------
Co-authored-by: Christian Schneider <schneider@search.ch >
Co-authored-by: Tim Düsterhus <tim@tideways-gmbh.com >
Co-authored-by: Daniel Scherzer <daniel.e.scherzer@gmail.com >
2026-04-02 09:49:33 -07:00
Ilija Tovilo
e4f727d61e
Implement ReflectionProperty::is{Readable,Writable}()
...
RFC: https://wiki.php.net/rfc/isreadable-iswriteable
Fixes GH-15309
Fixes GH-16175
Closes GH-16209
2026-02-27 14:26:06 +01:00
Khaled Alam
0b4fbf2e70
ext/reflection: Add ReflectionConstant::inNamespace() method ( #20902 )
2026-02-16 21:28:32 -08:00
Arnaud Le Blanc
d16e6f52a4
Generate C enums from internal enums, introduce Z_PARAM_ENUM() ( #20917 )
...
Update gen_stubs.php to generate C enums from internal enums, when the stub is annotated with @generate-c-enums. Enum values can be compared to the result of zend_enum_fetch_case_id(zend_object*).
The generated enums are added to separate files named {$extensionName}_decl.h, so that it's possible to include these from anywhere. _arginfo.h files would generate warnings if we tried to include them in a compilation unit that doesn't call the register_{$class} functions, for instance.
Introduce Z_PARAM_ENUM().
* Make ZEND_AST_CONST_ENUM_INIT a 4-children node
* Store enum case id in ZEND_AST_CONST_ENUM_INIT
* Store enum case id in instance
* Expose enum case_id internally
* Generate C enum for internal enums
* Introduce Z_PARAM_ENUM()
* Port extensions
2026-02-03 12:38:04 +01:00
Michael Voříšek
f8c7dc19a4
Add "since PHP 8.1" to ReflectionXxx::setAccessible() deprecations ( #20555 )
2025-12-01 12:57:19 -08:00
sasezaki
78c997f36f
Make ReflectionConstant non-final
...
Fixes GH-19747
Closes GH-19901
2025-09-22 19:52:59 +02:00
Tim Düsterhus
922c225fbf
reflection: Deprecate Reflection*::setAccessible() ( #19273 )
...
RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_reflectionsetaccessible
2025-08-08 21:24:41 +01:00
Alexandre Daubois
d292968f7c
Add ReflectionProperty::getMangledName() ( #18980 )
2025-07-22 12:24:27 -07:00
DanielEScherzer
3f03f7ed3d
[RFC] Add support for attributes on compile-time constants
...
https://wiki.php.net/rfc/attributes-on-constants
2025-04-29 11:53:09 -07:00
Arnaud Le Blanc
a087442259
Merge branch 'PHP-8.4'
...
* PHP-8.4:
Fix the name of the initializer parameter of ReflectionClass::resetAsLazyGhost()
2024-11-12 18:52:16 +01:00
Arnaud Le Blanc
a8151fc511
Fix the name of the initializer parameter of ReflectionClass::resetAsLazyGhost()
...
Closes GH-16758
2024-11-12 18:51:33 +01:00
DanielEScherzer
10f1f924cf
Add ReflectionConstant::getExtension() and ::getExtensionName() ( #16603 )
2024-11-09 11:08:02 +01:00
Daniel Scherzer
f5e743a520
Add ReflectionConstant::getFileName()
...
Allow determining the name of the file that defined a constant, when the
constant was defined in userland code via const or define(). For constants
defined by PHP core or extensions, false is returned, matching the existing
getFileName() methods on other reflection classes.
Fixes GH-15723
Closes GH-15847
2024-10-31 16:47:45 +01:00
Arnaud Le Blanc
50a3f019dc
Merge branch 'PHP-8.4'
...
* PHP-8.4:
Add ReflectionProperty::isLazy()
2024-10-31 14:15:49 +01:00
Arnaud Le Blanc
54a40f3bde
Add ReflectionProperty::isLazy()
...
Closes GH-16342
2024-10-31 14:14:20 +01:00
Ilija Tovilo
b34f22d801
Merge branch 'PHP-8.4'
...
* PHP-8.4:
Fix GH-16162: No ReflectionProperty::IS_VIRTUAL
2024-10-07 14:18:36 +02:00
Daniel Scherzer
76e5d82eb2
Fix GH-16162: No ReflectionProperty::IS_VIRTUAL
...
Closes GH-16166
2024-10-07 14:17:40 +02:00
DanielEScherzer
2501cad25a
Stubs and generated arginfo: remove tentative returns from final methods ( #16213 )
...
A tentative return type is used to allow userland code that overrides a method
to not include a typehint without a fatal error; this is inapplicable to final
methods (including all methods of final classes), which cannot be overridden.
Remove the tentative return declarations, and update the build script to
complain about future additions.
2024-10-04 07:43:59 +02:00
Ilija Tovilo
2fce0bb877
Implement ReflectionProperty::isFinal()
...
Closes GH-15919
2024-09-16 23:22:52 +02:00
Ilija Tovilo
d75a289f6f
Implement ReflectionProperty::hasHook[s]
...
Closes GH-15844
2024-09-16 14:28:41 +02:00
DanielEScherzer
2ced1c926b
Add ReflectionProperty::isDynamic() as an alternative to isDefault() ( #15758 )
...
Dynamic properties are generally referred to as "dynamic" properties, while
non-dynamic properties are not commonly referred to as "default" properties.
Thus, the existing method `ReflectionProperty::isDefault()` has a non obvious
name; while an alias could be added for `isNotDynamic()`, a new `isDynamic()`
method seems cleaner. The new method returns the opposite of `isDefault()`;
dynamic properties are not present on the class by default, and properties
present by default are not added dynamically.
Closes GH-15754
2024-09-11 10:51:38 +02:00
Arnaud Le Blanc
58aa6fc830
Lazy objects
...
RFC: https://wiki.php.net/rfc/lazy-objects
Closes GH-15019
2024-08-30 17:30:03 +02:00
Ilija Tovilo and Larry Garfield
8df557ac42
[RFC] Asymmetric visibility v2 (GH-15063)
...
Co-authored-by: Larry Garfield <larry@garfieldtech.com >
2024-08-27 02:04:48 +02:00
Ilija Tovilo and Nikita Popov
780a8280d2
[RFC] Property hooks ( #13455 )
...
RFC: https://wiki.php.net/rfc/property-hooks
Co-authored-by: Nikita Popov <nikita.ppv@gmail.com >
2024-07-14 11:55:03 +02:00
29f98e7485
Replace @deprecated by #[\Deprecated] for internal functions / class constants ( #14750 )
...
Co-authored-by: Gina Peter Banyard <girgias@php.net >
Co-authored-by: Niels Dossche <7771979+nielsdos@users.noreply.github.com >
2024-07-10 16:47:31 +02:00
Tim Düsterhus
8a87206211
reflection: Add ReflectionGenerator::isClosed() ( #14358 )
...
* reflection: Add `ReflectionGenerator::isClosed()`
see https://github.com/php/php-src/pull/14167#issuecomment-2133641998
* Fix test expectation
* Drop `{{{` / `}}}` comments around `ReflectionGenerator::isClosed()`
2024-05-29 19:07:09 +02:00
Tim Düsterhus
b5ffac7f6a
Add ReflectionClassConstant::isDeprecated() ( #14086 )
...
This is in preparation for php/php-src#11293 and for consistency with
ReflectionConstant::isDeprecated() that was added in php/php-src#13669 .
2024-04-30 17:26:27 +02:00
Ilija Tovilo
e23440e5a6
Implement reflection constant
...
Fixes GH-13570
Closes GH-13669
2024-04-17 22:53:09 +02:00
Máté Kocsis
577db99462
Verify stub aliases in CI ( #13682 )
...
In the same time, let's not verify implementation aliases since they may now legitimately differ from their aliased function/method counterparts (think about the ext/dom refactoring where e.g. many return type declarations have changed). Additionally, unnecessary `@no-verify` tags are cleaned up.
2024-03-13 23:32:35 +01:00
Niels Dossche
3b5986db69
Implement GH-12908: Show attribute name/class in ReflectionAttribute dump
...
This is consistent with how many other Reflection classes have a name
field, and it makes debugging easier.
Closes GH-12908.
Closes GH-12917.
2024-02-04 23:02:02 +01:00
Máté Kocsis
47789969ec
Revert "Declare the missing ReflectionMethod::$name property"
...
This reverts commit b0e83aabec .
The property is inherited from ReflectionFunctionAbstract.
2024-02-04 07:36:19 +01:00
Máté Kocsis
b0e83aabec
Declare the missing ReflectionMethod::$name property
2024-02-03 23:29:28 +01:00
Jorg Adam Sowa
e8d8a5fe69
Typed constants in reflection extension ( #12378 )
2023-10-28 09:47:19 +02:00
Máté Kocsis
f41220fe5d
Implement ReflectionMethod::createFromMethodName()
2023-07-18 12:59:21 +02:00
414f71a902
Typed class constants ( #10444 )
...
RFC: https://wiki.php.net/rfc/typed_class_constants
Co-Authored-By: Ben <7127204+moliata@users.noreply.github.com >
Co-Authored-By: Bob Weinand <3154871+bwoebi@users.noreply.github.com >
Co-Authored-By: Ilija Tovilo <ilija.tovilo@me.com >
2023-04-16 22:20:26 +02:00
Ilija Tovilo
ab99072608
Merge branch 'PHP-8.2'
...
* PHP-8.2:
Fix segfault when using ReflectionFiber (fixes #10439 )
2023-02-23 23:28:31 +01:00
Ilija Tovilo
f1818d726f
Merge branch 'PHP-8.1' into PHP-8.2
...
* PHP-8.1:
Fix segfault when using ReflectionFiber (fixes #10439 )
2023-02-23 23:27:55 +01:00
Daniil Gentili
8d1c0a1403
Fix segfault when using ReflectionFiber ( fixes #10439 )
...
Closes GH-10478
2023-02-23 23:20:27 +01:00
Máté Kocsis
016160800c
Fix GH-10259 ReflectionClass::getStaticProperties doesn't need null return type ( #10418 )
2023-01-24 22:26:52 +01:00
Arnaud Le Blanc
dcde9b85a6
Merge branch 'PHP-8.1' into PHP-8.2
...
* PHP-8.1:
[ci skip] NEWS
[ci skip] NEWS
Add tests
Fix GH-8932: Provide a way to get the called-scope of closures (#9299 )
2022-09-02 13:55:57 +02:00
Arnaud Le Blanc
409baac29c
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
[ci skip] NEWS
Add tests
Fix GH-8932: Provide a way to get the called-scope of closures (#9299 )
2022-09-02 13:53:14 +02:00
Nicolas Grekas and Christoph M. Becker
93f11d8429
Fix GH-8932: Provide a way to get the called-scope of closures ( #9299 )
...
Co-authored-by: Christoph M. Becker <cmbecker69@gmx.de >
2022-09-02 13:32:50 +02:00
Máté Kocsis
e4d79ce24c
Declare ext/reflection constants in stubs ( #9111 )
2022-07-23 12:59:30 +02:00
Sam
2ce2aff50e
Better return types for getBackingType ( #8687 )
...
The only backing types for Enums are int and string. The proper return type for ReflectionEnum::getBackingType() is thus null|ReflectionNamedType.
See also https://github.com/php/doc-en/pull/1608
Closes GH-8687
2022-06-02 18:13:21 +02:00
Máté Kocsis
7850c10389
Add support for readonly classes ( #7305 )
...
RFC: https://wiki.php.net/rfc/readonly_classes
2022-05-16 20:40:23 +02:00
Ollie Read
f590782b60
Add ReflectionMethod::hasPrototype method
...
Closes GH-8487.
2022-05-09 16:48:54 +02:00
Nicolas Grekas
be11bcb0b1
Add ReflectionFunction::isAnonymous()
...
Closes GH-8499.
2022-05-09 12:56:10 +02:00
Máté Kocsis
10a2079b13
Remove extra space before return type
...
For consistency and searchability reasons
2021-10-18 14:28:46 +02:00