1
0
mirror of https://github.com/php/php-src.git synced 2026-03-24 08:12:21 +01:00
Files
archived-php-src/ext/zend_test/tests/attribute-deprecated.phpt
DanielEScherzer 8f3cdf6236 gen_stub: Add support for attributes on constants in stubs (#18735)
Update to PHP-Parser 5.5.0 and add support for attributes on constants in
stubs. For now, I have only migrated over E_STRICT, once the support is in
place I'll do a larger migration of the existing deprecated constants.

In the process, fix the logic in `copy_zend_constant()` for copying attributes
when a constant is copied; just increase the reference count for the attributes
table rather than trying to duplicate the contents.
2025-06-05 14:46:46 -07:00

56 lines
1.5 KiB
PHP

--TEST--
#[\Deprecated]: Works in stubs.
--EXTENSIONS--
zend_test
--FILE--
<?php
zend_test_deprecated();
zend_test_deprecated_attr();
$reflection = new ReflectionFunction('zend_test_deprecated_attr');
var_dump($reflection->getAttributes()[0]->newInstance());
var_dump($reflection->isDeprecated());
_ZendTestClass::ZEND_TEST_DEPRECATED_ATTR;
$reflection = new ReflectionClassConstant('_ZendTestClass', 'ZEND_TEST_DEPRECATED_ATTR');
var_dump($reflection->getAttributes()[0]->newInstance());
var_dump($reflection->isDeprecated());
ZEND_TEST_ATTRIBUTED_CONSTANT;
$reflection = new ReflectionConstant('ZEND_TEST_ATTRIBUTED_CONSTANT');
var_dump($reflection->getAttributes()[0]->newInstance());
var_dump($reflection->isDeprecated());
?>
--EXPECTF--
Deprecated: Function zend_test_deprecated() is deprecated in %s on line %d
Deprecated: Function zend_test_deprecated_attr() is deprecated, custom message in %s on line %d
object(Deprecated)#%d (2) {
["message"]=>
string(14) "custom message"
["since"]=>
NULL
}
bool(true)
Deprecated: Constant _ZendTestClass::ZEND_TEST_DEPRECATED_ATTR is deprecated, custom message in %s on line %d
object(Deprecated)#%d (2) {
["message"]=>
string(14) "custom message"
["since"]=>
NULL
}
bool(true)
Deprecated: Constant ZEND_TEST_ATTRIBUTED_CONSTANT is deprecated since version 1.5, use something else in %s on line %d
object(Deprecated)#%d (2) {
["message"]=>
string(18) "use something else"
["since"]=>
string(11) "version 1.5"
}
bool(true)