PHP API: IR/Action

Classes in the IR/Action namespace.

AddAction

Source: AddAction.php

Action that increments an atom by an expression or scalar value.

Group: IR/Action

Example

PHP

$action = new AddAction(1, Expr::val(2));

Methods

__construct

PHP

public function __construct(
        public readonly int $atomId,
        public readonly int|float|Expr $by
    ) 

Build an add action.

Parameters

  • int $atomId Atom identifier.
  • int|float|Expr $by Value to add.

kind

PHP

public function kind(): string 

Return action discriminator.

Returns: string

jsonSerialize

PHP

public function jsonSerialize(): array

Encode this action as runtime IR payload.

Returns: array<string, mixed>

AppendAction

Source: AppendAction.php

Action that appends one value or an array of values into an atom collection.

Group: IR/Action

Methods

__construct

PHP

public function __construct(
        public readonly int $atomId,
        public readonly Expr|int|float|string|bool|array|null $value
    ) 

Parameters

  • int $atomId Atom identifier.
  • Expr|int|float|string|bool|array|null $value Value(s) to append.

DelayAction

Source: DelayAction.php

Action that delays one or more actions by a fixed interval.

Group: IR/Action

Example

PHP

$action = new DelayAction(300, [new IncAction(1, 1)]);

Methods

__construct

PHP

public function __construct(
        public readonly int $ms,    
        public readonly mixed $actions
    ) 

Build a delay action.

Parameters

  • int $ms Delay in milliseconds.
  • array<int, Action> $actions Actions to execute after delay.

kind

PHP

public function kind(): string 

Return action discriminator.

Returns: string

jsonSerialize

PHP

public function jsonSerialize(): array

Encode this action as runtime IR payload.

Returns: array<string, mixed>

HttpAction

Source: HttpAction.php

Action that performs an HTTP request.

Group: IR/Action

Example

PHP

$action = new HttpAction('/api/ping', 'GET');

Methods

__construct

PHP

public function __construct(
        public readonly Expr|string $url,
        public readonly string $method = 'GET',
        public readonly Atom|int|null $to = null,
        public readonly Atom|int|null $status = null,
        public readonly array|null $reqHeaders = null, // assoc array of scalar|Expr
        public readonly Atom|int|null $resHeaders = null,       // atom id to store response headers
        public readonly Expr|int|float|string|bool|array|null $body = null,
        public readonly string $parse = 'json'
    ) 

Build an HTTP action.

Parameters

  • Expr|string $url Request URL.
  • string $method HTTP method.
  • Atom|int|null $to Target atom for response payload.
  • Atom|int|null $status Target atom for HTTP status.
  • array<string, mixed>|null $reqHeaders Request headers.
  • Atom|int|null $resHeaders Target atom for response headers.
  • Expr|int|float|string|bool|array|null $body Request body.
  • string $parse Parse mode.

kind

PHP

public function kind(): string 

Return action discriminator.

Returns: string

collectAtoms

PHP

public function collectAtoms(callable $collect): void

Collect atom dependencies referenced by this action.

Parameters

  • callable $collect Collector callback.

Returns: void

jsonSerialize

PHP

public function jsonSerialize(): array

Encode this action as runtime IR payload.

Returns: array<string, mixed>

HydrateAction

Source: HydrateAction.php

Action that hydrates an atom from a persisted source.

Group: IR/Action

Example

PHP

$action = new HydrateAction($atom, 'local:count', 0);

Methods

__construct

PHP

public function __construct(
        public readonly Atom $atom,
        public readonly Expr|string $source,
        public readonly mixed $default = null
    ) 

Build a hydrate action.

Parameters

  • Atom $atom Atom to hydrate.
  • Expr|string $source Hydration source key/expression.
  • mixed $default Default fallback value.

kind

PHP

public function kind(): string 

Return action discriminator.

Returns: string

collectAtoms

PHP

public function collectAtoms(callable $collect): void

Collect atom dependencies referenced by this action.

Parameters

  • callable $collect Collector callback.

Returns: void

jsonSerialize

PHP

public function jsonSerialize(): array

Encode this action as runtime IR payload.

Returns: array<string, mixed>

IncAction

Source: IncAction.php

Action that increments an atom by a numeric delta.

Group: IR/Action

Example

PHP

$action = new IncAction(1, 1);

Methods

__construct

PHP

public function __construct(
        public readonly int $atomId,
        public readonly int|float $by = 1
    ) 

Build an increment action.

Parameters

  • int $atomId Atom identifier.
  • int|float $by Increment delta.

kind

PHP

public function kind(): string 

Return action discriminator.

Returns: string

jsonSerialize

PHP

public function jsonSerialize(): array

Encode this action as runtime IR payload.

Returns: array<string, int|float|string>

Listener

Source: Listener.php

Legacy listener action wrapper used by props/event helpers.

Group: IR/Action

Example

PHP

$listener = Listener::inc($countAtom, 1);

Methods

__construct

PHP

private function __construct(
        public string $kind,
        public ?Atom $atom = null,
        public mixed $payload = null
    ) 

Build a listener instance.

Parameters

  • string $kind Listener kind discriminator.
  • Atom|null $atom Target atom.
  • mixed $payload Listener payload.

collectAtoms

PHP

public function collectAtoms(callable $collect): void

Collect atom dependencies referenced by this listener.

Parameters

  • callable $collect Collector callback.

Returns: void

kind

PHP

public function kind(): string

Return listener discriminator.

Returns: string

inc

PHP

public static function inc(Atom $atom, int|float $by): self 

Create an increment listener.

Parameters

  • Atom $atom Target atom.
  • int|float $by Increment delta.

Returns: self

set

PHP

public static function set(Atom $atom, Expr|int|float|string|bool $to): self 

Create a set listener.

Parameters

  • Atom $atom Target atom.
  • Expr|int|float|string|bool $to Target value.

Returns: self

add

PHP

public static function add(Atom $atom, Expr $by): Expr 

Create an add expression based on current atom value.

Parameters

  • Atom $atom Target atom.
  • Expr $by Addend expression.

Returns: Expr

expr

PHP

private static function expr(mixed $x): Expr 

Normalize scalar/expr inputs to Expr.

Parameters

  • mixed $x Input value.

Returns: Expr

http

PHP

public static function http(array $opts): self 

Create an HTTP listener payload.

Parameters

  • array<string, mixed> $opts HTTP options.

Returns: self

navigate

PHP

public static function navigate(Expr|string $to): self 

Listener::navigate

Parameters

  • Expr|string $to Target URL (can be a literal or an expression).

Returns: self Listener instance with kind='navigate' and payload=Expr.

jsonSerialize

PHP

public function jsonSerialize(): mixed 

Encode this listener as runtime IR payload.

Returns: mixed

toArray

PHP

public function toArray(): array

Convert listener to normalized array payload.

Returns: array<string, mixed>

validate

PHP

public function validate(): void

Validate listener state.

Returns: void

Source: NavigateAction.php

Action that performs client-side navigation.

Group: IR/Action

Example

PHP

$action = new NavigateAction('/docs');

Methods

PHP

public function __construct(
        public readonly Expr|string $to
    ) 

Build a navigate action.

Parameters

  • Expr|string $to Target URL.
PHP

public function kind(): string 

Return action discriminator.

Returns: string

PHP

public function jsonSerialize(): array

Encode this action as runtime IR payload.

Returns: array<string, mixed>

PersistAction

Source: PersistAction.php

Action that persists an atom value to a storage source.

Group: IR/Action

Example

PHP

$action = new PersistAction($atom, 'local:count');

Methods

__construct

PHP

public function __construct(
        public readonly Atom $atom,
        public readonly Expr|string $source
    ) 

Build a persist action.

Parameters

  • Atom $atom Atom to persist.
  • Expr|string $source Persistence source key/expression.

kind

PHP

public function kind(): string 

Return action discriminator.

Returns: string

collectAtoms

PHP

public function collectAtoms(callable $collect): void

Collect atom dependencies referenced by this action.

Parameters

  • callable $collect Collector callback.

Returns: void

jsonSerialize

PHP

public function jsonSerialize(): array

Encode this action as runtime IR payload.

Returns: array<string, mixed>

PushAction

Source: PushAction.php

Action that pushes a value into an atom collection.

Group: IR/Action

Example

PHP

$action = new PushAction(1, Expr::val('item'));

Methods

__construct

PHP

public function __construct(
        public readonly int $atomId,
        public readonly Expr|int|float|string|bool|array|null $value
    ) 

Build a push action.

Parameters

  • int $atomId Atom identifier.
  • Expr|int|float|string|bool|array|null $value Value to push.

kind

PHP

public function kind(): string 

Return action discriminator.

Returns: string

jsonSerialize

PHP

public function jsonSerialize(): array

Encode this action as runtime IR payload.

Returns: array<string, mixed>

RedirectAction

Source: RedirectAction.php

Action that redirects navigation to another URL.

Group: IR/Action

Example

PHP

$action = new RedirectAction('/login', true);

Methods

__construct

PHP

public function __construct(
        public readonly Expr|string $to,
        public readonly bool $replace = false
    ) 

Build a redirect action.

Parameters

  • Expr|string $to Redirect target URL.
  • bool $replace Whether to replace history entry.

kind

PHP

public function kind(): string 

Return action discriminator.

Returns: string

jsonSerialize

PHP

public function jsonSerialize(): array

Encode this action as runtime IR payload.

Returns: array<string, mixed>

RuntimeAction

Source: RuntimeAction.php

Capability (runtime) invocation action.

JSON (IR): { k: 'cap', name: 'Date.getFullYear', args?: any, to?: atomId, error?: atomId }

Group: IR/Action

Example

PHP

$action = new RuntimeAction('Caps.CopyToClipboard', ['hello']);

Methods

__construct

PHP

public function __construct(
        public readonly string $name,
        /** @var mixed|null scalar|array|Expr (arrays may contain Expr) 

Build a runtime capability action.

Parameters

  • string $name Capability name.
  • mixed $args Capability arguments.
  • Atom|int|null $to Target atom for result.
  • Atom|int|null $error Target atom for errors.

kind

PHP

public function kind(): string 

Return action discriminator.

Returns: string

collectAtoms

PHP

public function collectAtoms(callable $collect): void

Collect atom dependencies referenced by this action.

Parameters

  • callable $collect Collector callback.

Returns: void

ser

PHP

private static function ser(mixed $v): mixed

Serialize nested arguments recursively.

Parameters

  • mixed $v Input value.

Returns: mixed

jsonSerialize

PHP

public function jsonSerialize(): array

Encode this action as runtime IR payload.

Returns: array<string, mixed>

SetAction

Source: SetAction.php

Action that sets an atom to a value or expression result.

Group: IR/Action

Example

PHP

$action = new SetAction($atom, Expr::val('done'));

Methods

__construct

PHP

public function __construct(
        public readonly Atom $atom,
        public readonly Expr|int|float|string|bool|null $to
    ) 

Build a set action.

Parameters

  • Atom $atom Target atom.
  • Expr|int|float|string|bool|null $to Target value.

kind

PHP

public function kind(): string 

Return action discriminator.

Returns: string

collectAtoms

PHP

public function collectAtoms(callable $collect): void

Collect atom dependencies referenced by this action.

Parameters

  • callable $collect Collector callback.

Returns: void

jsonSerialize

PHP

public function jsonSerialize(): array

Encode this action as runtime IR payload.

Returns: array<string, mixed>

TaskAction

Source: TaskAction.php

Task action: compose a list of actions sequentially.

Group: IR/Action

Example

PHP

$action = new TaskAction([new IncAction(1, 1), new DelayAction(200, [new IncAction(1, 1)])]);

Methods

__construct

PHP

public function __construct(
        public readonly array $actions
    ) 

Build a task action.

Parameters

  • array<int, Action> $actions Action list executed in order.

kind

PHP

public function kind(): string 

Return action discriminator.

Returns: string

jsonSerialize

PHP

public function jsonSerialize(): array

Encode this action as runtime IR payload.

Returns: array<string, mixed>