| Current Path : /home/rtorresani/www/vendor/laminas/laminas-permissions-acl/src/Assertion/ |
| Current File : //home/rtorresani/www/vendor/laminas/laminas-permissions-acl/src/Assertion/AssertionManager.php |
<?php
declare(strict_types=1);
namespace Laminas\Permissions\Acl\Assertion;
use Laminas\Permissions\Acl\Exception\InvalidArgumentException;
use Laminas\ServiceManager\AbstractPluginManager;
use Laminas\ServiceManager\Exception\InvalidServiceException;
use function gettype;
use function is_object;
use function sprintf;
/** @extends AbstractPluginManager<AssertionInterface> */
class AssertionManager extends AbstractPluginManager
{
/** @var class-string<AssertionInterface> */
protected $instanceOf = AssertionInterface::class;
/**
* Validate the plugin is of the expected type (v3).
*
* Validates against `$instanceOf`.
*
* @param mixed $instance
* @throws InvalidServiceException
* @psalm-assert AssertionInterface $instance
*/
public function validate($instance)
{
if (! $instance instanceof $this->instanceOf) {
throw new InvalidServiceException(sprintf(
'%s can only create instances of %s; %s is invalid',
self::class,
$this->instanceOf,
is_object($instance) ? $instance::class : gettype($instance)
));
}
}
/**
* Validate the plugin is of the expected type (v2).
*
* Proxies to `validate()`.
*
* @deprecated Please use {@see AssertionManager::validate()} instead.
*
* @throws InvalidArgumentException
* @psalm-assert AssertionInterface $instance
*/
public function validatePlugin(mixed $instance)
{
try {
$this->validate($instance);
} catch (InvalidServiceException $e) {
throw new InvalidArgumentException($e->getMessage(), $e->getCode(), $e);
}
}
}