/**
* @param string $entity имя сущности.
* @return array возвращает все сохраненные сущности из хранилища.
*/
function storageGetAll($entity)
{
    $posts = [];
    $dir = opendir(DB_DIR);
    do {
        $filename = readdir($dir);
        list($id) = sscanf($filename, storageGetFilenamePattern($entity));
        if ($id) {
            $posts[] = storageGetItemById($entity, $id);
        }
    } while ($filename);
    closedir($dir);
    return $posts;
}
Esempio n. 2
0
/**
 * @param string $entity имя сущности.
 * @param string $attribute имя атрибута сущности.
 * @param mixed $criteria значение атрибута сущности.
 * @return array возвращает сущности, у которых есть указанный атрибут с указанным значением.
 */
function storageGetItemBy($entity, $attribute, $criteria)
{
    $items = [];
    $files = scandir(DB_DIR);
    foreach ($files as $filename) {
        list($id) = sscanf($filename, storageGetFilenamePattern($entity));
        if ($id) {
            $item = storageGetItemById($entity, $id);
            if ($item && isset($item[$attribute]) && $item[$attribute] == $criteria) {
                $items[] = $item;
            }
        }
    }
    return $items;
}