/
vshmidt
/
php
Обзор
Документация
Войти
/
vshmidt
/
php
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
ext/reflection/tests/ReflectionProperty_toString_001.phpt
89 строк
2 KB
Daniel Scherzer
GH-17927: Indicate virtual properties and hooks in reflection output (#19297)
01 авг 2025, 03:32
Не верифицирован
01 авг 2025, 03:32
63f9e49
Код
Авторство
О чём код?
--TEST-- Using ReflectionProperty::__toString() with hooked properties (GH-17927) --FILE-- <?php interface IHookedDemo { public mixed $getOnly { get; } public mixed $setOnly { set; } public mixed $both { get; set; } } abstract class HookedDemo { abstract public mixed $getOnly { get; } abstract public mixed $setOnly { set; } abstract public mixed $both { get; set; } } class WithHooks { public mixed $getOnly { get => "always this string"; } public mixed $setOnly { set => strtolower($value); } public mixed $both { get => $this->prop3; set => strtolower($value); } } class WithFinalHooks { public mixed $getOnly { final get => "always this string"; } public mixed $setOnly { final set => strtolower($value); } public mixed $both { final get => $this->prop3; final set => strtolower($value); } } class WithMixedHooks { public mixed $getIsFinal { final get => "always this string"; set => strtolower($value); } public mixed $setIsFinal { get => $this->setIsFinal; final set => strtolower($value); } } $classes = [ IHookedDemo::class, HookedDemo::class, WithHooks::class, WithFinalHooks::class, WithMixedHooks::class, ]; foreach ( $classes as $clazz ) { echo "$clazz:\n"; $ref = new ReflectionClass( $clazz ); foreach ( $ref->getProperties() as $prop ) { echo $prop; } echo "\n"; } ?> --EXPECT-- IHookedDemo: Property [ abstract public virtual mixed $getOnly { get; } ] Property [ abstract public virtual mixed $setOnly { set; } ] Property [ abstract public virtual mixed $both { get; set; } ] HookedDemo: Property [ abstract public virtual mixed $getOnly { get; } ] Property [ abstract public virtual mixed $setOnly { set; } ] Property [ abstract public virtual mixed $both { get; set; } ] WithHooks: Property [ public virtual mixed $getOnly { get; } ] Property [ public mixed $setOnly { set; } ] Property [ public mixed $both { get; set; } ] WithFinalHooks: Property [ public virtual mixed $getOnly { final get; } ] Property [ public mixed $setOnly { final set; } ] Property [ public mixed $both { final get; final set; } ] WithMixedHooks: Property [ public mixed $getIsFinal { final get; set; } ] Property [ public mixed $setIsFinal { get; final set; } ]