everzet/persisted-objects

过于简单的持久化实现,用于功能测试

v1.0.4 2018-02-12 12:14 UTC

This package is auto-updated.

Last update: 2024-08-28 19:03:40 UTC


README

该仓库收集了一些(有意为之)可能在训练或测试练习中找到的有用仓库。它们为测试基础设施中创建存储库的假数据提供了一种简单的方式。

为什么?

如标题所述 - 用于测试和演示目的。这些仓库针对以下情况进行了优化:您的存储库中少于20条记录,并且始终只有一个用户访问它。在这些特定情况下,这些存储库速度更快。但除此之外,它们的性能会呈指数下降。

使用方法

使用以下命令安装

$> composer require --dev everzet/persisted-objects

使用方法如下

$repo = new FileRepository(TEMP_FILE, new AccessorObjectIdentifier('getId'));
$repo->save($user);

$user === $repo->findById($user->getId());

$repo->clear();

或如下使用

$repo = new InMemoryRepository(new CallbackObjectIdentifier(
    function($obj) { return $obj->getFirstname() . $obj->getLastname(); }
);
$repo->save($user);

$user === $repo->findById($user->getFirstname() . $user->getLastname());

$repo->clear();