phly / sqlite-resource
用于在 SQLite 中持久化 JSON 资源的库
dev-master
2013-05-29 21:51 UTC
Requires
- php: >=5.3.3
- zendframework/zend-math: 2.*
This package is auto-updated.
Last update: 2024-09-11 14:33:08 UTC
README
这是一个“玩具”库,旨在使原型化 RESTful API 的持久性变得容易。它本质上允许您创建以下列的 SQLite 数据库
- id,代表一个标识符。该库自动生成,将是一个 32 位的十六进制字符串(即 0-9 和 a-f 的字符)。
- data,一个表示资源的 JSON 编码字符串。这始终作为关联数组返回。
安装
最简单的方法是通过 Composer 安装。下载 composer 安装程序,并创建一个 composer.json
文件,如下所示
{ "minimum-stability": "dev", "require": { "phly/sqlite-resource": "dev-master" } }
然后运行 composer install
。
模式
模式可在 schema.sqlite.sql 中找到。本质上
CREATE TABLE IF NOT EXISTS collection ( id CHARACTER(32) PRIMARY KEY, data BLOB NOT NULL );
根据需要修改它以更改表名。
初始化
为了实例化 Phly\SqliteResource\SqliteResource
,您需要一个 PDO 实例。典型的实例化看起来像这样
use PDO; use Phly\SqliteResource\SqliteResource; $pdo = new PDO('sqlite:/path/to/database.db'); $resource = new SqliteResource($pdo, 'table-name');
API
API 支持以下操作
- create(array $data) - 将资源插入数据库并返回它,同时返回一个包含新创建标识符的“id”键。
- fetch($id) - 获取给定标识符的资源。如果没有找到资源,则抛出异常。
- fetchAll($limit = null, $offset = null) - 从数据库中获取所有资源,返回一个数组数组。如果给出限制,则仅返回指示的资源数量;如果给出限制和偏移量,则返回从该偏移量开始的资源
- patch($id, array $data) - 将提供的
$data
与通过$id
在数据库中已存在的记录合并,并保存它。返回合并的资源。 - update($id, array $data) - 用
$data
替换通过$id
标识的资源。返回资源。 - delete($id) - 删除通过
$id
标识的资源。
注意事项
请勿在生产环境中使用此库。使用文档数据库或具有真实模式的数据库,该模式映射到资源中的字段。
许可协议
本模块使用 BSD 2-Clause 许可协议进行许可
Copyright (c) 2013, Matthew Weier O'Phinney
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.