Files
farmOS-dev/vendor/chi-teck/drupal-code-generator/src/Asset/Resolver/ResolverDefinition.php
2024-12-10 15:08:16 +01:00

35 lines
766 B
PHP

<?php
declare(strict_types=1);
namespace DrupalCodeGenerator\Asset\Resolver;
use DrupalCodeGenerator\InputOutput\IO;
final class ResolverDefinition {
/**
* Constructs the object.
*
* @psalm-param class-string<\DrupalCodeGenerator\Asset\Resolver\ResolverInterface> $className
*/
public function __construct(
public readonly string $className,
public readonly mixed $options = NULL,
) {}
/**
* Creates asset resolver.
*/
public function createResolver(IO $io): ResolverInterface {
if (\is_subclass_of($this->className, ResolverFactoryInterface::class)) {
$resolver = $this->className::createResolver($io, $this->options);
}
else {
$resolver = new $this->className();
}
return $resolver;
}
}