. * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU Affero General Public License version 3. * * In accordance with Section 7(b) of the GNU Affero General Public License version 3, * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ namespace Espo\Core\Application\Runner; /** * Parameters for an application runner. */ class Params { /** @var array */ private $data = []; public function __construct() {} /** * Get a parameter value. */ public function get(string $name): mixed { return $this->data[$name] ?? null; } /** * Whether a parameter is set. */ public function has(string $name): bool { return array_key_exists($name, $this->data); } /** * Clone with a parameter value. */ public function with(string $name, mixed $value): self { $obj = clone $this; $obj->data[$name] = $value; return $obj; } /** * Create from an associative array. * * @param array $data */ public static function fromArray(array $data): self { $obj = new self(); $obj->data = $data; return $obj; } /** * Create an empty instance. */ public static function create(): self { return new self(); } }