98 lines
1.5 KiB
PHP
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 = [];
|
|
}
|
|
|