/** * @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; }
/** * @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; }