1<?php 2 3/** 4 * @generate-class-entries static 5 * @generate-legacy-arginfo 80000 6 * @undocumentable 7 */ 8namespace { 9 require "Zend/zend_attributes.stub.php"; 10 11 /** 12 * @var int 13 * @deprecated 14 */ 15 const ZEND_TEST_DEPRECATED = 42; 16 17 /** @var string */ 18 const ZEND_CONSTANT_A = "global"; 19 20 interface _ZendTestInterface 21 { 22 /** @var int */ 23 /** @genstubs-expose-comment-block 24 * "Lorem ipsum" 25 * @see https://www.php.net 26 * @since 8.2 27 */ 28 public const DUMMY = 0; 29 } 30 31 /** @alias _ZendTestClassAlias */ 32 class _ZendTestClass implements _ZendTestInterface { 33 public const mixed TYPED_CLASS_CONST1 = []; 34 public const int|array TYPED_CLASS_CONST2 = 42; 35 /** 36 * @var int 37 * @cvalue 1 38 */ 39 public const int|string TYPED_CLASS_CONST3 = UNKNOWN; 40 41 /** 42 * @deprecated 43 */ 44 public const int ZEND_TEST_DEPRECATED = 42; 45 46 #[\Deprecated(message: "custom message")] 47 public const int ZEND_TEST_DEPRECATED_ATTR = 42; 48 49 /** @var mixed */ 50 public static $_StaticProp; 51 public static int $staticIntProp = 123; 52 53 public int $intProp = 123; 54 public ?stdClass $classProp = null; 55 public stdClass|Iterator|null $classUnionProp = null; 56 public Traversable&Countable $classIntersectionProp; 57 public readonly int $readonlyProp; 58 59 public static function is_object(): int {} 60 61 /** @deprecated */ 62 public function __toString(): string {} 63 64 public function returnsStatic(): static {} 65 66 public function returnsThrowable(): Throwable {} 67 68 static public function variadicTest(string|Iterator ...$elements) : static {} 69 70 public function takesUnionType(stdclass|Iterator $arg): void {} 71 } 72 73 class _ZendTestMagicCall 74 { 75 public function __call(string $name, array $args): mixed {} 76 } 77 78 class _ZendTestMagicCallForward 79 { 80 public function __call(string $name, array $args): mixed {} 81 } 82 83 class _ZendTestChildClass extends _ZendTestClass 84 { 85 public function returnsThrowable(): Exception {} 86 } 87 88 class ZendAttributeTest { 89 /** @var int */ 90 #[ZendTestRepeatableAttribute] 91 #[ZendTestRepeatableAttribute] 92 public const TEST_CONST = 1; 93 94 /** @var mixed */ 95 #[ZendTestRepeatableAttribute] 96 #[ZendTestPropertyAttribute("testProp")] 97 public $testProp; 98 99 #[ZendTestAttribute] 100 public function testMethod(): bool {} 101 } 102 103 trait _ZendTestTrait { 104 /** @var mixed */ 105 public $testProp; 106 public Traversable|Countable $classUnionProp; 107 108 public function testMethod(): bool {} 109 } 110 111 #[Attribute(Attribute::TARGET_ALL)] 112 final class ZendTestAttribute { 113 } 114 115 #[Attribute(Attribute::TARGET_ALL)] 116 final class ZendTestAttributeWithArguments { 117 public readonly mixed $arg; 118 119 public function __construct(mixed $arg) {} 120 } 121 122 #[Attribute(Attribute::TARGET_ALL|Attribute::IS_REPEATABLE)] 123 final class ZendTestRepeatableAttribute { 124 } 125 126 #[Attribute(Attribute::TARGET_PARAMETER)] 127 final class ZendTestParameterAttribute { 128 public string $parameter; 129 130 public function __construct(string $parameter) {} 131 } 132 133 /** @genstubs-expose-comment-block 134 * "Lorem ipsum" 135 * @see https://www.php.net 136 * @since 8.1 137 */ 138 #[Attribute(Attribute::TARGET_PROPERTY)] 139 final class ZendTestPropertyAttribute { 140 /** @genstubs-expose-comment-block 141 * "Lorem ipsum" 142 * @see https://www.php.net 143 * @since 8.4 144 */ 145 public string $parameter; 146 147 public function __construct(string $parameter) {} 148 } 149 150 class ZendTestClassWithMethodWithParameterAttribute { 151 final public function no_override( 152 #[ZendTestParameterAttribute("value2")] 153 string $parameter 154 ): int {} 155 public function override( 156 #[ZendTestParameterAttribute("value3")] 157 string $parameter 158 ): int {} 159 } 160 161 class ZendTestChildClassWithMethodWithParameterAttribute extends ZendTestClassWithMethodWithParameterAttribute { 162 public function override( 163 #[ZendTestParameterAttribute("value4")] 164 string $parameter 165 ): int {} 166 } 167 168 class ZendTestClassWithPropertyAttribute { 169 // this attribute must be added internally in MINIT 170 #[ZendTestAttribute] 171 public string $attributed; 172 } 173 174 final class ZendTestForbidDynamicCall { 175 public function call(): void {} 176 public static function callStatic(): void {} 177 } 178 179 enum ZendTestUnitEnum { 180 case Foo; 181 case Bar; 182 } 183 184 enum ZendTestStringEnum: string { 185 case Foo = "Test1"; 186 case Bar = 'Test2'; 187 case Baz = "Test2\\a"; 188 case FortyTwo = "42"; 189 } 190 191 enum ZendTestIntEnum: int { 192 case Foo = 1; 193 case Bar = 3; 194 case Baz = -1; 195 } 196 197 function zend_test_array_return(): array {} 198 199 /** @genstubs-expose-comment-block 200 * "Lorem ipsum" 201 * @see https://www.php.net 202 * @since 8.3 203 */ 204 /** 205 * @internal 206 * @compile-time-eval 207 */ 208 function zend_test_nullable_array_return(): null|array {} 209 210 function zend_test_void_return(): void {} 211 212 function zend_test_compile_string(string $source_string, string $filename, int $position): void {} 213 214 /** @deprecated */ 215 function zend_test_deprecated(mixed $arg = null): void {} 216 217 #[\Deprecated(message: "custom message")] 218 function zend_test_deprecated_attr(): void {} 219 220 /** @alias zend_test_void_return */ 221 function zend_test_aliased(): void {} 222 223 /** 224 * @deprecated 225 * @alias zend_test_void_return 226 */ 227 function zend_test_deprecated_aliased(): void {} 228 229 function zend_create_unterminated_string(string $str): string {} 230 231 function zend_terminate_string(string &$str): void {} 232 233 function zend_leak_variable(mixed $variable): void {} 234 235 function zend_leak_bytes(int $bytes = 3): void {} 236 237 function zend_string_or_object(object|string $param): object|string {} 238 239 function zend_string_or_object_or_null(object|string|null $param): object|string|null {} 240 241 /** @param stdClass|string $param */ 242 function zend_string_or_stdclass($param): stdClass|string {} 243 244 /** @param stdClass|string|null $param */ 245 function zend_string_or_stdclass_or_null($param): stdClass|string|null {} 246 247 function zend_number_or_string(string|int|float $param): string|int|float {} 248 249 function zend_number_or_string_or_null(string|int|float|null $param): string|int|float|null {} 250 251 function zend_iterable(iterable $arg1, ?iterable $arg2 = null): void {} 252 253 function zend_weakmap_attach(object $object, mixed $value): bool {} 254 function zend_weakmap_remove(object $object): bool {} 255 function zend_weakmap_dump(): array {} 256 257 function zend_get_unit_enum(): ZendTestUnitEnum {} 258 259 function zend_test_parameter_with_attribute( 260 #[ZendTestParameterAttribute("value1")] 261 string $parameter 262 ): int {} 263 264 #[ZendTestAttributeWithArguments(arg: "foo")] 265 function zend_test_attribute_with_named_argument(): void {} 266 267 function zend_get_current_func_name(): string {} 268 269 function zend_call_method(object|string $obj_or_class, string $method, mixed $arg1 = UNKNOWN, mixed $arg2 = UNKNOWN): mixed {} 270 271 function zend_object_init_with_constructor(string $class, mixed ...$args): mixed {} 272 273 function zend_test_zend_ini_parse_quantity(string $str): int {} 274 function zend_test_zend_ini_parse_uquantity(string $str): int {} 275 276 function zend_test_zend_ini_str(): string {} 277 278#ifdef ZEND_CHECK_STACK_LIMIT 279 function zend_test_zend_call_stack_get(): ?array {} 280 function zend_test_zend_call_stack_use_all(): int {} 281#endif 282 283 function zend_test_is_string_marked_as_valid_utf8(string $string): bool {} 284 285 function zend_get_map_ptr_last(): int {} 286 287 function zend_test_crash(?string $message = null): void {} 288 289 function zend_test_fill_packed_array(array &$array): void {} 290 291 /** @return resource */ 292 function zend_test_create_throwing_resource() {} 293 294 function get_open_basedir(): ?string {} 295 296#if defined(HAVE_LIBXML) && !defined(PHP_WIN32) 297function zend_test_override_libxml_global_state(): void {} 298#endif 299 300 function zend_test_is_pcre_bundled(): bool {} 301 302#if defined(PHP_WIN32) 303 function zend_test_set_fmode(bool $binary): void {} 304#endif 305 306 /** @param resource $stream */ 307 function zend_test_cast_fread($stream): void {} 308 309 function zend_test_is_zend_ptr(int $addr): bool {} 310 311 function zend_test_log_err_debug(string $str): void {} 312} 313 314namespace ZendTestNS { 315 316 class Foo { 317 /** @tentative-return-type */ 318 public function method(): int {} 319 } 320 321 class UnlikelyCompileError { 322 /* This method signature would create a compile error due to the string 323 * "ZendTestNS\UnlikelyCompileError" in the generated macro call */ 324 public function method(): ?UnlikelyCompileError {} 325 } 326 327 class NotUnlikelyCompileError { 328 /* This method signature would create a compile error due to the string 329 * "ZendTestNS\NotUnlikelyCompileError" in the generated macro call */ 330 public function method(): ?NotUnlikelyCompileError {} 331 } 332} 333 334namespace ZendTestNS2 { 335 336 /** @var string */ 337 const ZEND_CONSTANT_A = "namespaced"; 338 339 class Foo { 340 public ZendSubNS\Foo $foo; 341 342 public function method(): void {} 343 } 344 345 function namespaced_func(): bool {} 346 347 /** @deprecated */ 348 function namespaced_deprecated_func(): void {} 349 350 /** @alias zend_test_void_return */ 351 function namespaced_aliased_func(): void {} 352 353 /** 354 * @deprecated 355 * @alias zend_test_void_return 356 */ 357 function namespaced_deprecated_aliased_func(): void {} 358} 359 360namespace ZendTestNS2\ZendSubNS { 361 362 /** @var string */ 363 const ZEND_CONSTANT_A = \ZendTestNS2\ZEND_CONSTANT_A; 364 365 class Foo { 366 public function method(): void {} 367 } 368 369 function namespaced_func(): bool {} 370 371 /** @deprecated */ 372 function namespaced_deprecated_func(): void {} 373 374 /** @alias zend_test_void_return */ 375 function namespaced_aliased_func(): void {} 376 377 /** 378 * @deprecated 379 * @alias zend_test_void_return 380 */ 381 function namespaced_deprecated_aliased_func(): void {} 382} 383