1<?php
2
3/** @generate-class-entries */
4
5class ReflectionException extends Exception
6{
7}
8
9class Reflection
10{
11    /** @tentative-return-type */
12    public static function getModifierNames(int $modifiers): array {}
13}
14
15interface Reflector extends Stringable
16{
17}
18
19/** @not-serializable */
20abstract class ReflectionFunctionAbstract implements Reflector
21{
22    public string $name;
23
24    /** @implementation-alias ReflectionClass::__clone */
25    private function __clone(): void {}
26
27    /** @tentative-return-type */
28    public function inNamespace(): bool {}
29
30    /** @tentative-return-type */
31    public function isClosure(): bool {}
32
33    /** @tentative-return-type */
34    public function isDeprecated(): bool {}
35
36    /** @tentative-return-type */
37    public function isInternal(): bool {}
38
39    /** @tentative-return-type */
40    public function isUserDefined(): bool {}
41
42    /** @tentative-return-type */
43    public function isGenerator(): bool {}
44
45    /** @tentative-return-type */
46    public function isVariadic(): bool {}
47
48    /** @tentative-return-type */
49    public function isStatic(): bool {}
50
51    /** @tentative-return-type */
52    public function getClosureThis(): ?object {}
53
54    /** @tentative-return-type */
55    public function getClosureScopeClass(): ?ReflectionClass {}
56
57    /** @tentative-return-type */
58    public function getClosureCalledClass(): ?ReflectionClass {}
59
60    public function getClosureUsedVariables(): array {}
61
62    /** @tentative-return-type */
63    public function getDocComment(): string|false {}
64
65    /** @tentative-return-type */
66    public function getEndLine(): int|false {}
67
68    /** @tentative-return-type */
69    public function getExtension(): ?ReflectionExtension {}
70
71    /** @tentative-return-type */
72    public function getExtensionName(): string|false {}
73
74    /** @tentative-return-type */
75    public function getFileName(): string|false {}
76
77    /** @tentative-return-type */
78    public function getName(): string {}
79
80    /** @tentative-return-type */
81    public function getNamespaceName(): string {}
82
83    /** @tentative-return-type */
84    public function getNumberOfParameters(): int {}
85
86    /** @tentative-return-type */
87    public function getNumberOfRequiredParameters(): int {}
88
89    /** @tentative-return-type */
90    public function getParameters(): array {}
91
92    /** @tentative-return-type */
93    public function getShortName(): string {}
94
95    /** @tentative-return-type */
96    public function getStartLine(): int|false {}
97
98    /** @tentative-return-type */
99    public function getStaticVariables(): array {}
100
101    /** @tentative-return-type */
102    public function returnsReference(): bool {}
103
104    /** @tentative-return-type */
105    public function hasReturnType(): bool {}
106
107    /** @tentative-return-type */
108    public function getReturnType(): ?ReflectionType {}
109
110    public function hasTentativeReturnType(): bool {}
111
112    public function getTentativeReturnType(): ?ReflectionType {}
113
114    public function getAttributes(?string $name = null, int $flags = 0): array {}
115}
116
117class ReflectionFunction extends ReflectionFunctionAbstract
118{
119    /**
120     * @var int
121     * @cvalue ZEND_ACC_DEPRECATED
122     */
123    public const IS_DEPRECATED = UNKNOWN;
124
125    public function __construct(Closure|string $function) {}
126
127    public function __toString(): string {}
128
129    public function isAnonymous(): bool {}
130
131    /**
132     * @tentative-return-type
133     * @deprecated ReflectionFunction can no longer be constructed for disabled functions
134     */
135    public function isDisabled(): bool {}
136
137    /** @tentative-return-type */
138    public function invoke(mixed ...$args): mixed {}
139
140    /** @tentative-return-type */
141    public function invokeArgs(array $args): mixed {}
142
143    /** @tentative-return-type */
144    public function getClosure(): Closure {}
145}
146
147/** @not-serializable */
148final class ReflectionGenerator
149{
150    public function __construct(Generator $generator) {}
151
152    /** @tentative-return-type */
153    public function getExecutingLine(): int {}
154
155    /** @tentative-return-type */
156    public function getExecutingFile(): string {}
157
158    /** @tentative-return-type */
159    public function getTrace(int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT): array {}
160
161    /** @tentative-return-type */
162    public function getFunction(): ReflectionFunctionAbstract {}
163
164    /** @tentative-return-type */
165    public function getThis(): ?object {}
166
167    /** @tentative-return-type */
168    public function getExecutingGenerator(): Generator {}
169}
170
171class ReflectionMethod extends ReflectionFunctionAbstract
172{
173    /**
174     * @var int
175     * @cvalue ZEND_ACC_STATIC
176     */
177    public const IS_STATIC = UNKNOWN;
178    /**
179     * @var int
180     * @cvalue ZEND_ACC_PUBLIC
181     */
182    public const IS_PUBLIC = UNKNOWN;
183    /**
184     * @var int
185     * @cvalue ZEND_ACC_PROTECTED
186     */
187    public const IS_PROTECTED = UNKNOWN;
188    /**
189     * @var int
190     * @cvalue ZEND_ACC_PRIVATE
191     */
192    public const IS_PRIVATE = UNKNOWN;
193    /**
194     * @var int
195     * @cvalue ZEND_ACC_ABSTRACT
196     */
197    public const IS_ABSTRACT = UNKNOWN;
198    /**
199     * @var int
200     * @cvalue ZEND_ACC_FINAL
201     */
202    public const IS_FINAL = UNKNOWN;
203
204    public string $class;
205
206    public function __construct(object|string $objectOrMethod, ?string $method = null) {}
207
208    public function __toString(): string {}
209
210    /** @tentative-return-type */
211    public function isPublic(): bool {}
212
213    /** @tentative-return-type */
214    public function isPrivate(): bool {}
215
216    /** @tentative-return-type */
217    public function isProtected(): bool {}
218
219    /** @tentative-return-type */
220    public function isAbstract(): bool {}
221
222    /** @tentative-return-type */
223    public function isFinal(): bool {}
224
225    /** @tentative-return-type */
226    public function isConstructor(): bool {}
227
228    /** @tentative-return-type */
229    public function isDestructor(): bool {}
230
231    /** @tentative-return-type */
232    public function getClosure(?object $object = null): Closure {}
233
234    /** @tentative-return-type */
235    public function getModifiers(): int {}
236
237    /** @tentative-return-type */
238    public function invoke(?object $object, mixed ...$args): mixed {}
239
240    /** @tentative-return-type */
241    public function invokeArgs(?object $object, array $args): mixed {}
242
243    /** @tentative-return-type */
244    public function getDeclaringClass(): ReflectionClass {}
245
246    /** @tentative-return-type */
247    public function getPrototype(): ReflectionMethod {}
248
249    public function hasPrototype(): bool {}
250
251    /** @tentative-return-type */
252    public function setAccessible(bool $accessible): void {}
253}
254
255/** @not-serializable */
256class ReflectionClass implements Reflector
257{
258    /**
259     * @var int
260     * @cvalue ZEND_ACC_IMPLICIT_ABSTRACT_CLASS
261     * @todo deprecate
262     */
263    public const IS_IMPLICIT_ABSTRACT = UNKNOWN;
264    /**
265     * @var int
266     * @cvalue ZEND_ACC_EXPLICIT_ABSTRACT_CLASS
267     */
268    public const IS_EXPLICIT_ABSTRACT = UNKNOWN;
269    /**
270     * @var int
271     * @cvalue ZEND_ACC_FINAL
272     */
273    public const IS_FINAL = UNKNOWN;
274    /**
275     * @var int
276     * @cvalue ZEND_ACC_READONLY_CLASS
277     */
278    public const IS_READONLY = UNKNOWN;
279
280    public string $name;
281
282    private function __clone(): void {}
283
284    public function __construct(object|string $objectOrClass) {}
285
286    public function __toString(): string {}
287
288    /** @tentative-return-type */
289    public function getName(): string {}
290
291    /** @tentative-return-type */
292    public function isInternal(): bool {}
293
294    /** @tentative-return-type */
295    public function isUserDefined(): bool {}
296
297    /** @tentative-return-type */
298    public function isAnonymous(): bool {}
299
300    /** @tentative-return-type */
301    public function isInstantiable(): bool {}
302
303    /** @tentative-return-type */
304    public function isCloneable(): bool {}
305
306    /** @tentative-return-type */
307    public function getFileName(): string|false {}
308
309    /** @tentative-return-type */
310    public function getStartLine(): int|false {}
311
312    /** @tentative-return-type */
313    public function getEndLine(): int|false {}
314
315    /** @tentative-return-type */
316    public function getDocComment(): string|false {}
317
318    /** @tentative-return-type */
319    public function getConstructor(): ?ReflectionMethod {}
320
321    /** @tentative-return-type */
322    public function hasMethod(string $name): bool {}
323
324    /** @tentative-return-type */
325    public function getMethod(string $name): ReflectionMethod {}
326
327    /** @tentative-return-type */
328    public function getMethods(?int $filter = null): array {}
329
330    /** @tentative-return-type */
331    public function hasProperty(string $name): bool {}
332
333    /** @tentative-return-type */
334    public function getProperty(string $name): ReflectionProperty {}
335
336    /** @tentative-return-type */
337    public function getProperties(?int $filter = null): array {}
338
339    /** @tentative-return-type */
340    public function hasConstant(string $name): bool {}
341
342    /** @tentative-return-type */
343    public function getConstants(?int $filter = null): array {}
344
345    /** @tentative-return-type */
346    public function getReflectionConstants(?int $filter = null): array {}
347
348    /** @tentative-return-type */
349    public function getConstant(string $name): mixed {}
350
351    /** @tentative-return-type */
352    public function getReflectionConstant(string $name): ReflectionClassConstant|false {}
353
354    /** @tentative-return-type */
355    public function getInterfaces(): array {}
356
357    /** @tentative-return-type */
358    public function getInterfaceNames(): array {}
359
360    /** @tentative-return-type */
361    public function isInterface(): bool {}
362
363    /** @tentative-return-type */
364    public function getTraits(): array {}
365
366    /** @tentative-return-type */
367    public function getTraitNames(): array {}
368
369    /** @tentative-return-type */
370    public function getTraitAliases(): array {}
371
372    /** @tentative-return-type */
373    public function isTrait(): bool {}
374
375    public function isEnum(): bool {}
376
377    /** @tentative-return-type */
378    public function isAbstract(): bool {}
379
380    /** @tentative-return-type */
381    public function isFinal(): bool {}
382
383    public function isReadOnly(): bool {}
384
385    /** @tentative-return-type */
386    public function getModifiers(): int {}
387
388    /** @tentative-return-type */
389    public function isInstance(object $object): bool {}
390
391    /** @tentative-return-type */
392    public function newInstance(mixed ...$args): object {}
393
394    /** @tentative-return-type */
395    public function newInstanceWithoutConstructor(): object {}
396
397    /** @tentative-return-type */
398    public function newInstanceArgs(array $args = []): ?object {}
399
400    /** @tentative-return-type */
401    public function getParentClass(): ReflectionClass|false {}
402
403    /** @tentative-return-type */
404    public function isSubclassOf(ReflectionClass|string $class): bool {}
405
406    /** @tentative-return-type */
407    public function getStaticProperties(): ?array {}
408
409    /** @tentative-return-type */
410    public function getStaticPropertyValue(string $name, mixed $default = UNKNOWN): mixed {}
411
412    /** @tentative-return-type */
413    public function setStaticPropertyValue(string $name, mixed $value): void {}
414
415    /** @tentative-return-type */
416    public function getDefaultProperties(): array {}
417
418    /** @tentative-return-type */
419    public function isIterable(): bool {}
420
421    /**
422     * @tentative-return-type
423     * @alias ReflectionClass::isIterable
424     */
425    public function isIterateable(): bool {}
426
427    /** @tentative-return-type */
428    public function implementsInterface(ReflectionClass|string $interface): bool {}
429
430    /** @tentative-return-type */
431    public function getExtension(): ?ReflectionExtension {}
432
433    /** @tentative-return-type */
434    public function getExtensionName(): string|false {}
435
436    /** @tentative-return-type */
437    public function inNamespace(): bool {}
438
439    /** @tentative-return-type */
440    public function getNamespaceName(): string {}
441
442    /** @tentative-return-type */
443    public function getShortName(): string {}
444
445    public function getAttributes(?string $name = null, int $flags = 0): array {}
446}
447
448class ReflectionObject extends ReflectionClass
449{
450    public function __construct(object $object) {}
451}
452
453/** @not-serializable */
454class ReflectionProperty implements Reflector
455{
456    /**
457     * @var int
458     * @cvalue ZEND_ACC_STATIC
459     */
460    public const IS_STATIC = UNKNOWN;
461    /**
462     * @var int
463     * @cvalue ZEND_ACC_READONLY
464     */
465    public const IS_READONLY = UNKNOWN;
466    /**
467     * @var int
468     * @cvalue ZEND_ACC_PUBLIC
469     */
470    public const IS_PUBLIC = UNKNOWN;
471    /**
472     * @var int
473     * @cvalue ZEND_ACC_PROTECTED
474     */
475    public const IS_PROTECTED = UNKNOWN;
476    /**
477     * @var int
478     * @cvalue ZEND_ACC_PRIVATE
479     */
480    public const IS_PRIVATE = UNKNOWN;
481
482    public string $name;
483    public string $class;
484
485    /** @implementation-alias ReflectionClass::__clone */
486    private function __clone(): void {}
487
488    public function __construct(object|string $class, string $property) {}
489
490    public function __toString(): string {}
491
492    /** @tentative-return-type */
493    public function getName(): string {}
494
495    /** @tentative-return-type */
496    public function getValue(?object $object = null): mixed {}
497
498    /** @tentative-return-type */
499    public function setValue(mixed $objectOrValue, mixed $value = UNKNOWN): void {}
500
501    /** @tentative-return-type */
502    public function isInitialized(?object $object = null): bool {}
503
504    /** @tentative-return-type */
505    public function isPublic(): bool {}
506
507    /** @tentative-return-type */
508    public function isPrivate(): bool {}
509
510    /** @tentative-return-type */
511    public function isProtected(): bool {}
512
513    /** @tentative-return-type */
514    public function isStatic(): bool {}
515
516    public function isReadOnly(): bool {}
517
518    /** @tentative-return-type */
519    public function isDefault(): bool {}
520
521    public function isPromoted(): bool {}
522
523    /** @tentative-return-type */
524    public function getModifiers(): int {}
525
526    /** @tentative-return-type */
527    public function getDeclaringClass(): ReflectionClass {}
528
529    /** @tentative-return-type */
530    public function getDocComment(): string|false {}
531
532    /** @tentative-return-type */
533    public function setAccessible(bool $accessible): void {}
534
535    /** @tentative-return-type */
536    public function getType(): ?ReflectionType {}
537
538    /** @tentative-return-type */
539    public function hasType(): bool {}
540
541    public function hasDefaultValue(): bool {}
542
543    /** @tentative-return-type */
544    public function getDefaultValue(): mixed {}
545
546    public function getAttributes(?string $name = null, int $flags = 0): array {}
547}
548
549/** @not-serializable */
550class ReflectionClassConstant implements Reflector
551{
552    /**
553     * @var int
554     * @cvalue ZEND_ACC_PUBLIC
555     */
556    public const IS_PUBLIC = UNKNOWN;
557    /**
558     * @var int
559     * @cvalue ZEND_ACC_PROTECTED
560     */
561    public const IS_PROTECTED = UNKNOWN;
562    /**
563     * @var int
564     * @cvalue ZEND_ACC_PRIVATE
565     */
566    public const IS_PRIVATE = UNKNOWN;
567    /**
568     * @var int
569     * @cvalue ZEND_ACC_FINAL
570     */
571    public const IS_FINAL = UNKNOWN;
572
573    public string $name;
574    public string $class;
575
576    /** @implementation-alias ReflectionClass::__clone */
577    private function __clone(): void {}
578
579    public function __construct(object|string $class, string $constant) {}
580
581    public function __toString(): string {}
582
583    /** @tentative-return-type */
584    public function getName(): string {}
585
586    /** @tentative-return-type */
587    public function getValue(): mixed {}
588
589    /** @tentative-return-type */
590    public function isPublic(): bool {}
591
592    /** @tentative-return-type */
593    public function isPrivate(): bool {}
594
595    /** @tentative-return-type */
596    public function isProtected(): bool {}
597
598    public function isFinal(): bool {}
599
600    /** @tentative-return-type */
601    public function getModifiers(): int {}
602
603    /** @tentative-return-type */
604    public function getDeclaringClass(): ReflectionClass {}
605
606    /** @tentative-return-type */
607    public function getDocComment(): string|false {}
608
609    public function getAttributes(?string $name = null, int $flags = 0): array {}
610
611    public function isEnumCase(): bool {}
612}
613
614/** @not-serializable */
615class ReflectionParameter implements Reflector
616{
617    public string $name;
618
619    /** @implementation-alias ReflectionClass::__clone */
620    private function __clone(): void {}
621
622    /** @param string|array|object $function */
623    public function __construct($function, int|string $param) {}
624
625    public function __toString(): string {}
626
627    /** @tentative-return-type */
628    public function getName(): string {}
629
630    /** @tentative-return-type */
631    public function isPassedByReference(): bool {}
632
633    /** @tentative-return-type */
634    public function canBePassedByValue(): bool {}
635
636    /** @tentative-return-type */
637    public function getDeclaringFunction(): ReflectionFunctionAbstract {}
638
639    /** @tentative-return-type */
640    public function getDeclaringClass(): ?ReflectionClass {}
641
642    /**
643     * @tentative-return-type
644     * @deprecated Use ReflectionParameter::getType() instead
645     */
646    public function getClass(): ?ReflectionClass {}
647
648    /** @tentative-return-type */
649    public function hasType(): bool {}
650
651    /** @tentative-return-type */
652    public function getType(): ?ReflectionType {}
653
654    /**
655     * @tentative-return-type
656     * @deprecated Use ReflectionParameter::getType() instead
657     */
658    public function isArray(): bool {}
659
660    /**
661     * @tentative-return-type
662     * @deprecated Use ReflectionParameter::getType() instead
663     */
664    public function isCallable(): bool {}
665
666    /** @tentative-return-type */
667    public function allowsNull(): bool {}
668
669    /** @tentative-return-type */
670    public function getPosition(): int {}
671
672    /** @tentative-return-type */
673    public function isOptional(): bool {}
674
675    /** @tentative-return-type */
676    public function isDefaultValueAvailable(): bool {}
677
678    /** @tentative-return-type */
679    public function getDefaultValue(): mixed {}
680
681    /** @tentative-return-type */
682    public function isDefaultValueConstant(): bool {}
683
684    /** @tentative-return-type */
685    public function getDefaultValueConstantName(): ?string {}
686
687    /** @tentative-return-type */
688    public function isVariadic(): bool {}
689
690    public function isPromoted(): bool {}
691
692    public function getAttributes(?string $name = null, int $flags = 0): array {}
693}
694
695/** @not-serializable */
696abstract class ReflectionType implements Stringable
697{
698    /** @implementation-alias ReflectionClass::__clone */
699    private function __clone(): void {}
700
701    /** @tentative-return-type */
702    public function allowsNull(): bool {}
703
704    public function __toString(): string {}
705}
706
707class ReflectionNamedType extends ReflectionType
708{
709    /** @tentative-return-type */
710    public function getName(): string {}
711
712    /** @tentative-return-type */
713    public function isBuiltin(): bool {}
714}
715
716class ReflectionUnionType extends ReflectionType
717{
718    public function getTypes(): array {}
719}
720
721class ReflectionIntersectionType extends ReflectionType
722{
723    public function getTypes(): array {}
724}
725
726/** @not-serializable */
727class ReflectionExtension implements Reflector
728{
729    public string $name;
730
731    /** @implementation-alias ReflectionClass::__clone */
732    private function __clone(): void {}
733
734    public function __construct(string $name) {}
735
736    public function __toString(): string {}
737
738    /** @tentative-return-type */
739    public function getName(): string {}
740
741    /** @tentative-return-type */
742    public function getVersion(): ?string {}
743
744    /** @tentative-return-type */
745    public function getFunctions(): array {}
746
747    /** @tentative-return-type */
748    public function getConstants(): array {}
749
750    /** @tentative-return-type */
751    public function getINIEntries(): array {}
752
753    /** @tentative-return-type */
754    public function getClasses(): array {}
755
756    /** @tentative-return-type */
757    public function getClassNames(): array {}
758
759    /** @tentative-return-type */
760    public function getDependencies(): array {}
761
762    /** @tentative-return-type */
763    public function info(): void {}
764
765    /** @tentative-return-type */
766    public function isPersistent(): bool {}
767
768    /** @tentative-return-type */
769    public function isTemporary(): bool {}
770}
771
772/** @not-serializable */
773class ReflectionZendExtension implements Reflector
774{
775    public string $name;
776
777    /** @implementation-alias ReflectionClass::__clone */
778    private function __clone(): void {}
779
780    public function __construct(string $name) {}
781
782    public function __toString(): string {}
783
784    /** @tentative-return-type */
785    public function getName(): string {}
786
787    /** @tentative-return-type */
788    public function getVersion(): string {}
789
790    /** @tentative-return-type */
791    public function getAuthor(): string {}
792
793    /** @tentative-return-type */
794    public function getURL(): string {}
795
796    /** @tentative-return-type */
797    public function getCopyright(): string {}
798}
799
800/** @not-serializable */
801final class ReflectionReference
802{
803    public static function fromArrayElement(array $array, int|string $key): ?ReflectionReference {}
804
805    public function getId(): string {}
806
807    /** @implementation-alias ReflectionClass::__clone */
808    private function __clone(): void {}
809
810    private function __construct() {}
811}
812
813/** @not-serializable */
814class ReflectionAttribute implements Reflector
815{
816    /**
817     * @var int
818     * @cvalue REFLECTION_ATTRIBUTE_IS_INSTANCEOF
819     */
820    public const IS_INSTANCEOF = UNKNOWN;
821
822    public function getName(): string {}
823    public function getTarget(): int {}
824    public function isRepeated(): bool {}
825    public function getArguments(): array {}
826    public function newInstance(): object {}
827
828    public function __toString(): string {}
829
830    private function __clone(): void {}
831
832    private function __construct() {}
833}
834
835class ReflectionEnum extends ReflectionClass
836{
837    public function __construct(object|string $objectOrClass) {}
838
839    public function hasCase(string $name): bool {}
840
841    public function getCase(string $name): ReflectionEnumUnitCase {}
842
843    public function getCases(): array {}
844
845    public function isBacked(): bool {}
846
847    public function getBackingType(): ?ReflectionNamedType {}
848}
849
850class ReflectionEnumUnitCase extends ReflectionClassConstant
851{
852    public function __construct(object|string $class, string $constant) {}
853
854    public function getEnum(): ReflectionEnum {}
855
856    /**
857     * @implementation-alias ReflectionClassConstant::getValue
858     * @no-verify
859     */
860    public function getValue(): UnitEnum {}
861}
862
863class ReflectionEnumBackedCase extends ReflectionEnumUnitCase
864{
865    public function __construct(object|string $class, string $constant) {}
866
867    public function getBackingValue(): int|string {}
868}
869
870/** @not-serializable */
871final class ReflectionFiber
872{
873    public function __construct(Fiber $fiber) {}
874
875    public function getFiber(): Fiber {}
876
877    public function getExecutingFile(): ?string {}
878
879    public function getExecutingLine(): ?int {}
880
881    public function getCallable(): callable {}
882
883    public function getTrace(int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT): array {}
884}
885