Files
pest/src/Concerns/Extendable.php
Hans van Luttikhuizen-Ross b7b16096db Specify closure this for extend
2025-10-29 11:20:08 +01:00

41 lines
673 B
PHP

<?php
declare(strict_types=1);
namespace Pest\Concerns;
use Closure;
/**
* @internal
*
* @template T of object
*/
trait Extendable
{
/**
* The list of extends.
*
* @var array<string, Closure>
*/
private static array $extends = [];
/**
* Register a new extend.
*
* @param-closure-this T $extend
*/
public function extend(string $name, Closure $extend): void
{
static::$extends[$name] = $extend;
}
/**
* Checks if given extend name is registered.
*/
public static function hasExtend(string $name): bool
{
return array_key_exists($name, static::$extends);
}
}