moss/storage

此软件包已被放弃,不再维护。未建议替代软件包。

moss storage

v0.9.4 2014-05-01 16:54 UTC

This package is not auto-updated.

Last update: 2022-02-01 12:34:36 UTC


README

Build Status Scrutinizer Code Quality Code Coverage

存储 是为 MOSS 框架 开发的一个简单的 ORM,作为一个完全独立的库。其哲学与 数据映射 模式类似,允许将数据从对象实例移动到数据库,同时保持它们相互独立。

活动记录 打破了单一职责原则(通过扩展一些基类),整个设计变得臃肿... 并添加了不必要的耦合。 存储 对此采取了不同的方法。实体与数据库没有直接连接,业务逻辑不受存储库的影响。实体与数据库之间的唯一联系在于 存储 本身 - 在模型中描述了实体如何与存储库相关联。

两个示例(假设存在相应的模型)

$article = $storage->readOne('article')
	->where('id', 123)
	->with('comment', array(array('visible' => true)))
	->execute();

这将读取具有 id=123 的文章实体及其所有可见评论。

$obj = new Article('title', 'text');
$obj->comments = array(
	new Comment('It\'s so simple!', 'comment_author@mail'),
	new Comment('Yup, it is.', 'different_author@mail'),
);

$storage->write($obj)->with('comment')->execute();

这将使用设置的评论将文章实体写入数据库。

有关许可证详细信息,请参阅 LICENCE.md 文档,文档位于 ./docs/ 目录中。

需求

仅需 PHP >= 5.4、Doctrine DBAL 和 SQL 数据库。

安装

github 下载或通过 Composer

	"require": {
		"moss/storage": ">=0.9"
	}

贡献

如果您想提交修复或一些其他增强功能,请随意操作。每当您发现错误时,如果您能提交它将是很好的。如果您提交修复,这将是非常令人惊叹的!

如何贡献

  • 分支 存储 仓库;
  • 为每个功能/改进/问题创建一个新的分支;
  • 从分支发送拉取请求

风格指南

所有拉取请求都必须遵循 PSR-2 标准。所有拉取请求都必须附带通过 PHPUnit 测试。