battis / appmetadata

该包已被废弃,不再维护。未建议替代包。

一个存储应用元数据的对象,后端由MySQL表支持

v1.2.2 2016-07-22 06:29 UTC

This package is auto-updated.

Last update: 2023-05-25 12:39:07 UTC


README

Latest Version Scrutinizer Code Quality

这类东西感觉应该已经存在,但我在互联网上的初步搜索未能找到:类似于 $_GLOBALS 的关联数组,后端由持久化数据存储支持(在这种情况下是MySQL,因为这是我唯一使用的东西,因为……懒,我想)。

使用方法

更新您的 composer.json 文件以包含以下内容。

{
  "requires": {
    "battis/appmetadata": "~1.0"
  }
}

实用提示: 我总是觉得将其他项目的文档、单元测试等开销包含在我的项目中很烦人。根据 Stack Overflow 上的此答案,您实际上可以通过将 --prefer-dist 标志添加到 composer installcomposer update 来获得一些小改进,如下所示:

composer install --prefer-dist

创建一个 AppMetadata 对象,并像对待任何其他关联数组一样处理它。

// instantiate a new mysqli database connection
$sql = new mysqli('localhost', 'root', 's00pers3kr3t', 'demo-db');

// first use (create database tables -- only needs to happen once!)
Battis\AppMetadata::prepareDatabase($sql);

// instantiate our metadata array
$metadata = new Battis\AppMetadata($sql, 'my-unique-app-key');

// store something into the database
$metadata['X'] = 'foobar';

// read something out of the database
echo $metadata['X']; // 'foobar'

// use one metadata value to derive another
$metadata['Y'] = '@X again'
echo $metadata['Y']; // 'foobar again';

// derived values update automagically
$metadata['X'] = 'xoxo';
echo $metadata['Y']; // 'xoxo again';

// remove something from the database
unset($metadata['X']);
echo $metadata['Y']; // '@X again', since no value X to derive from

完整的文档可在 包内部 找到。