takeoto/state

Abstraction for the state of system processes.

Maintainers

Details

github.com/takeoto/state

Source

Issues

Installs: 1

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 0

Open Issues: 0

pkg:composer/takeoto/state

dev-main 2023-05-06 07:27 UTC

This package is auto-updated.

Last update: 2025-11-06 12:54:10 UTC


README

Abstraction for the state of system processes

Usage

use Takeoto\State\State;
use Takeoto\Message\NoticeMessage;
use Takeoto\Message\ErrorMessage;
use Takeoto\Message\WarningMessage;
use Takeoto\State\Utility\StateUtility;

$state = new State([
    new NoticeMessage('☀️The notice message.'),
    new WarningMessage('⚠️The warning message!'),
    new ErrorMessage(500, 'The error message ‼️'),
]);

$state->isOk(); # false
StateUtility::ensure($state); # Throws an exception

# ---

$state = new State([
    new NoticeMessage('☀️The notice message.'),
    new WarningMessage('⚠️The warning message!'),
]);
$state->isOk(); # true

# ---

$state = new State([], true);
$state->isOk(); # true

# ---

# $service = new SomeService();
# $state = $service->doSomeWork(...$args);
# 
# if (!$state->isOk()) {
#   throw new \RuntimeException($state->getMessages()->getErrors()->first());
# }