ComposerStagerExceptionTrait.php
Namespace
Drupal\package_manager_bypassFile
-
core/
modules/ package_manager/ tests/ modules/ package_manager_bypass/ src/ ComposerStagerExceptionTrait.php
View source
<?php
declare (strict_types=1);
namespace Drupal\package_manager_bypass;
/**
* Trait to make Composer Stager throw pre-determined exceptions in tests.
*
* @internal
*/
trait ComposerStagerExceptionTrait {
/**
* Sets an exception to be thrown.
*
* @param string|null $class
* The class of exception to throw, or NULL to delete a stored exception.
* @param mixed ...$arguments
* Arguments to pass to the exception constructor.
*/
public static function setException(?string $class = \Exception::class, mixed ...$arguments) : void {
if ($class) {
\Drupal::state()->set(static::class . '-exception', func_get_args());
}
else {
\Drupal::state()->delete(static::class . '-exception');
}
}
/**
* Throws the exception if set.
*/
private function throwExceptionIfSet() : void {
if ($exception = $this->state
->get(static::class . '-exception')) {
$class = array_shift($exception);
throw new $class(...$exception);
}
}
}
Traits
Title | Deprecated | Summary |
---|---|---|
ComposerStagerExceptionTrait | Trait to make Composer Stager throw pre-determined exceptions in tests. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.