function storageGetItemBy($entity, $attribute, $criteria)
{
    $items = [];
    $files = scandir(DB_DIR);
    foreach ($files as $filename) {
        list($id) = sscanf($filename, getFilenamePattern($entity));
        if ($id) {
            $item = storageGetItemById($entity, $id);
            if ($item && isset($item[$attribute]) && $item[$attribute] == $criteria) {
                $items[] = $item;
            }
        }
    }
    return $items;
}
function storageGetALL($entitiy)
{
    $items = [];
    $dir = @opendir(DB_DIR);
    if (!$dir) {
        return $items;
    }
    do {
        $filename = readdir($dir);
        list($id) = sscanf($filename, getFilenamePattern($entitiy));
        if ($id) {
            $items[] = storageGetItemByID($entitiy, $id);
        }
    } while ($filename);
    closedir($dir);
    return $items;
}