1
0
mirror of https://github.com/danog/psalm.git synced 2024-11-27 04:45:20 +01:00
psalm/stubs/Reflection.phpstub
2021-03-06 16:05:14 -05:00

102 lines
2.3 KiB
Plaintext

<?php
/**
* @template-covariant T as object
*
* @property-read class-string<T> $name
*/
class ReflectionClass implements Reflector {
/**
* @var class-string<T>
*/
public $name;
/**
* @param T|class-string<T>|trait-string $argument
*/
public function __construct($argument) {}
/**
* @return class-string<T>
*/
public function getName(): string;
/**
* @param mixed ...$args
*
* @return T
*/
public function newInstance(...$args): object {}
/**
* @param array<int, mixed> $args
*
* @return T
*/
public function newInstanceArgs(array $args): object {}
/**
* @return T
*/
public function newInstanceWithoutConstructor(): object;
/**
* @return ?array<string>
* @psalm-ignore-nullable-return
*/
public function getTraitNames(): array {}
/**
* @since 8.0
* @template TClass as object
* @param class-string<TClass>|null $name
* @return array<ReflectionAttribute<TClass>>
*/
public function getAttributes(?string $name = null, int $flags = 0): array {}
}
class ReflectionFunction implements Reflector
{
/**
* @since 8.0
* @template TClass as object
* @param class-string<TClass>|null $name
* @return array<ReflectionAttribute<TClass>>
*/
public function getAttributes(?string $name = null, int $flags = 0): array {}
}
class ReflectionProperty implements Reflector
{
/**
* @since 8.0
* @template TClass as object
* @param class-string<TClass>|null $name
* @return array<ReflectionAttribute<TClass>>
*/
public function getAttributes(?string $name = null, int $flags = 0): array {}
}
class ReflectionMethod implements Reflector
{
/**
* @since 8.0
* @template TClass as object
* @param class-string<TClass>|null $name
* @return array<ReflectionAttribute<TClass>>
*/
public function getAttributes(?string $name = null, int $flags = 0): array {}
}
class ReflectionClassConstant
{
/**
* @since 8.0
* @template TClass as object
* @param class-string<TClass>|null $name
* @return array<ReflectionAttribute<TClass>>
*/
public function getAttributes(?string $name = null, int $flags = 0): array {}
}