onoi/blob-store

一个用于管理无模式的时序持久键/值对的简单接口

1.2.1 2016-07-09 17:32 UTC

This package is not auto-updated.

Last update: 2024-09-13 14:11:21 UTC


README

Build Status Code Coverage Scrutinizer Code Quality Latest Stable Version Packagist download count Dependency Status

一个用于管理无模式的时序持久键/值对的简单接口。这是Semantic MediaWiki代码库的一部分,现在作为独立库部署。

建议根据使用情况,使用redis、riak或mongodb作为后端提供者。

需求

  • PHP 5.3或更高版本
  • Onoi/Cache ~1.1

安装

该库推荐的安装方法是将其依赖项添加到您的composer.json文件中。

{
	"require": {
		"onoi/blob-store": "~1.2"
	}
}

用法

class Foo {

	private $blobStore;

	public function __construct( BlobStore $blobStore ) {
		$this->blobStore = $blobStore;
	}

	public function doSomethingFor( $id ) {
		$container = $this->blobStore->read( md5( $id ) );

		$container->set( 'one', array( new \stdClass, 'Text' ) );

		$container->append(
			'one',
			new \stdClass
		);

		$container->delete( 'two' );

		$this->blobStore->save( $container );
	}
}
$cacheFactory = new CacheFactory();

$compositeCache = $cacheFactory->newCompositeCache( array(
	$cacheFactory->newFixedInMemoryLruCache(),
	$cacheFactory->newDoctrineCache( new \Doctrine\Common\Cache\RedisCache( ... ) )
) );

or

$compositeCache = $cacheFactory->newCompositeCache( array(
	$cacheFactory->newFixedInMemoryLruCache(),
	$cacheFactory->newMediaWikiCache( \ObjectCache::getInstance( 'redis' ) )
) );

$blobStore = new BlobStore( 'foo', $compositeCache );

$instance = new Foo( $blobStore );
$instance->doSomethingFor( 'bar' );

创建实例时,需要指定一个命名空间以指定存储的上下文,以防BlobStore用于不同的用例。

贡献和支持

如果您想为项目做出贡献,请订阅开发人员邮件列表,并查看贡献指南。过去做出贡献的人的列表可以在此处找到。

测试

该库提供单元测试,通常由持续集成平台运行,覆盖核心功能。测试也可以通过从根目录运行composer phpunit命令手动执行。

发行说明

  • 1.2.0 (2016-03-19)
  • 添加了Container::addToLinkedList以维护一个相互依赖的容器链接列表(如果删除原始容器,则所有链接容器也将被删除)
  • 1.1.0 (2015-06-13)
  • 移除了内部ID列表的跟踪
  • 添加了Container::setExpiryInSeconds
  • 1.0.0 (2015-06-02)
  • 初始发布

许可

GNU通用公共许可证2.0或更高版本.