rosavox/lib/alveolata/cache/implementation-memory/functions.php
2025-05-23 07:33:29 +00:00

98 lines
1.5 KiB
PHP

<?php
namespace alveolata\cache;
// require_once(DIR_ALVEOLATA . '/definitions.php');
/**
* @author Christian Fraß <frass@greenscale.de>
*/
class struct_subject_memory {
/**
* @author Christian Fraß <frass@greenscale.de>
*/
public $data;
/**
* @author Christian Fraß <frass@greenscale.de>
*/
public function __construct(
)
{
$this->data = [];
}
}
/**
* @author Christian Fraß <frass@greenscale.de>
* @return struct_subject_memory
*/
function memory_make(
) : struct_subject_memory
{
return (new struct_subject_memory());
}
/**
* @param struct_subject_memory $subject
* @param string $id
* @param mixed $value
* @author Christian Fraß <frass@greenscale.de>
*/
function memory_set(
struct_subject_memory $subject,
string $id,
$value
) : void
{
$subject->data[$id] = $value;
}
/**
* @param struct_subject_memory $subject
* @param string $id
* @return bool
* @author Christian Fraß <frass@greenscale.de>
*/
function memory_has(
struct_subject_memory $subject,
string $id
) : bool
{
return array_key_exists($id, $subject->data);
}
/**
* @param struct_subject_memory $subject
* @param string $id
* @return mixed
* @author Christian Fraß <frass@greenscale.de>
*/
function memory_fetch(
struct_subject_memory $subject,
string $id
)
{
return $subject->data[$id];
}
/**
* @param struct_subject_memory $subject
* @author Christian Fraß <frass@greenscale.de>
*/
function memory_clear(
struct_subject_memory $subject
) : void
{
$subject->data = [];
}