ComponentsContext::get

Context::get ​

(PHP 8.6+, True Async 1.0)

php
public Context::get(string|object $key): mixed

Gets a value by key from the current context. If the key is not found at the current level, the search continues up the hierarchy of parent contexts.

Unlike find(), this method throws an exception if the key is not found at any level. Use get() when the presence of a value is a mandatory requirement.

Parameters ​

key : The key to search for. Can be a string or an object. When using an object as a key, the search is performed by object reference.

Return Value ​

The value associated with the key.

Errors ​

  • Throws Async\ContextException if the key is not found in the current or any parent context.

Examples ​

Example #1 Getting a required value ​

php
<?php

use function Async\current_context;
use function Async\spawn;

current_context()->set('db_connection', $pdo);

spawn(function() {
    // Get a value that must exist
    $db = current_context()->get('db_connection');
    $db->query('SELECT 1');
});

Example #2 Handling a missing key ​

php
<?php

use function Async\current_context;

try {
    $value = current_context()->get('missing_key');
} catch (\Async\ContextException $e) {
    echo "Key not found: " . $e->getMessage() . "\n";
}

Example #3 Using an object key ​

php
<?php

use function Async\current_context;
use function Async\spawn;

class DatabaseKey {}

$dbKey = new DatabaseKey();
current_context()->set($dbKey, new PDO('sqlite::memory:'));

spawn(function() use ($dbKey) {
    // Object key ensures uniqueness without name conflicts
    $pdo = current_context()->get($dbKey);
    $pdo->exec('CREATE TABLE test (id INTEGER)');
});

See Also ​