Automattic\WooCommerce\Utilities

CallbackUtil::get_invokable_signatureprivate staticWC 1.0

Get a stable signature for an invokable object based on its class and __invoke method location.

For regular classes, returns 'ClassName::__invoke' since the class name is stable. For anonymous classes, includes file location since the class name varies between requests.

Method of the class: CallbackUtil{}

No Hooks.

Returns

String. Signature in format 'ClassName::__invoke' or 'class@anonymous[hash]::__invoke@filename:startLine-endLine'.

Usage

$result = CallbackUtil::get_invokable_signature( $invokable ): string;
$invokable(object) (required)
The invokable object to generate a signature for.

CallbackUtil::get_invokable_signature() code WC 10.8.1

private static function get_invokable_signature( object $invokable ): string {
	$method = new \ReflectionMethod( $invokable, '__invoke' );
	$class  = $method->getDeclaringClass();

	if ( ! $class->isAnonymous() ) {
		return $class->getName() . '::__invoke';
	}

	return sprintf(
		'class@anonymous[%s]::__invoke@%s:%d-%d',
		md5( $class->getName() ),
		$method->getFileName(),
		$method->getStartLine(),
		$method->getEndLine()
	);
}