Files
piratepoet/mailpoet/lib/Automation/Engine/Data/Field.php
Jan Jakes 4aa323b612 Extract data-carrying classes to dedicated namespace
We need a separation of "Step" as an interface vs. "Step" as a serializable data structure.

[MAILPOET-4515]
2022-08-08 13:23:57 +02:00

68 lines
1.1 KiB
PHP

<?php declare(strict_types = 1);
namespace MailPoet\Automation\Engine\Data;
class Field {
public const TYPE_BOOLEAN = 'boolean';
public const TYPE_INTEGER = 'integer';
public const TYPE_STRING = 'string';
public const TYPE_ENUM = 'enum';
/** @var string */
private $key;
/** @var string */
private $type;
/** @var string */
private $name;
/** @var callable */
private $factory;
/** @var array */
private $args;
public function __construct(
string $key,
string $type,
string $name,
callable $factory,
array $args = []
) {
$this->key = $key;
$this->type = $type;
$this->name = $name;
$this->factory = $factory;
$this->args = $args;
}
public function getKey(): string {
return $this->key;
}
public function getType(): string {
return $this->type;
}
public function getName(): string {
return $this->name;
}
public function getFactory(): callable {
return $this->factory;
}
/**
* @return mixed
*/
public function getValue() {
return $this->getFactory()();
}
public function getArgs(): array {
return $this->args;
}
}