mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-07-25 20:33:59 +00:00
Utils: be explicit about class existence checking in testValidInstance()
This commit is contained in:
parent
4d73c93886
commit
cd9af7f9f6
@ -36,6 +36,7 @@ use function array_reverse;
|
|||||||
use function array_values;
|
use function array_values;
|
||||||
use function bin2hex;
|
use function bin2hex;
|
||||||
use function chunk_split;
|
use function chunk_split;
|
||||||
|
use function class_exists;
|
||||||
use function count;
|
use function count;
|
||||||
use function debug_zval_dump;
|
use function debug_zval_dump;
|
||||||
use function dechex;
|
use function dechex;
|
||||||
@ -466,17 +467,14 @@ final class Utils{
|
|||||||
* @phpstan-param class-string $baseName
|
* @phpstan-param class-string $baseName
|
||||||
*/
|
*/
|
||||||
public static function testValidInstance(string $className, string $baseName) : void{
|
public static function testValidInstance(string $className, string $baseName) : void{
|
||||||
try{
|
if(!class_exists($baseName)){
|
||||||
$base = new \ReflectionClass($baseName);
|
|
||||||
}catch(\ReflectionException $e){
|
|
||||||
throw new \InvalidArgumentException("Base class $baseName does not exist");
|
throw new \InvalidArgumentException("Base class $baseName does not exist");
|
||||||
}
|
}
|
||||||
|
if(!class_exists($className)){
|
||||||
try{
|
|
||||||
$class = new \ReflectionClass($className);
|
|
||||||
}catch(\ReflectionException $e){
|
|
||||||
throw new \InvalidArgumentException("Class $className does not exist");
|
throw new \InvalidArgumentException("Class $className does not exist");
|
||||||
}
|
}
|
||||||
|
$base = new \ReflectionClass($baseName);
|
||||||
|
$class = new \ReflectionClass($className);
|
||||||
|
|
||||||
if(!$class->isSubclassOf($baseName)){
|
if(!$class->isSubclassOf($baseName)){
|
||||||
throw new \InvalidArgumentException("Class $className does not " . ($base->isInterface() ? "implement" : "extend") . " " . $baseName);
|
throw new \InvalidArgumentException("Class $className does not " . ($base->isInterface() ? "implement" : "extend") . " " . $baseName);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user