*/ private $context; private string $name; /** * @var array */ private $rootContext; /** * @var ?Closure */ private $func = null; /** * @var ?Closure */ private $inverseFunc = null; /** * @param mixed[] $argumentList * @param array $context * @param array $rootContext * @param int $blockParams */ public function __construct( string $name, array $argumentList, stdClass $options, array $context, array $rootContext, int $blockParams, ?Closure $func, ?Closure $inverseFunc ) { $this->name = $name; $this->argumentList = $argumentList; $this->options = $options; $this->context = $context; $this->rootContext = $rootContext; $this->blockParams = $blockParams; $this->func = $func; $this->inverseFunc = $inverseFunc; } public function getName(): string { return $this->name; } /** * @return array */ public function getContext(): array { return $this->context; } /** * @return array */ public function getRootContext(): array { return $this->rootContext; } public function getOptions(): stdClass { return $this->options; } /** * @return mixed[] */ public function getArgumentList(): array { return $this->argumentList; } public function hasOption(string $name): bool { return property_exists($this->options, $name); } /** * @return mixed */ public function getOption(string $name) { return $this->options->$name ?? null; } public function getFunction(): ?Closure { return $this->func; } public function getInverseFunction(): ?Closure { return $this->inverseFunc; } }