namshi/gvalue

一个用于解析Google文档并将其转换为键值数组的库

1.0.0 2014-01-10 12:25 UTC

This package is not auto-updated.

Last update: 2024-09-10 01:33:05 UTC


README

Build Status

这个库的目标是能够将Google电子表格解析为简单的键值,以便您可以将其用于配置应用程序。

这难道不是很奇怪吗?

有权力的地方就有责任。

我们希望以最简单的方式更改我们应用程序的配置,因此我们认为我们应该有一个易于访问的键值存储,我们将把那些将被应用程序使用的配置值放入其中:例如,每页产品数量、缓存有效期等。我们最终得出结论,Redis将是存储我们的配置的一个非常好的候选者。

问题在于你考虑如何更新这些配置值

  • 通过SSH登录到您的服务器
  • 登录到redis
  • 更改一个值

尽管这可能听起来很简单,但您应该考虑这可能是一个 缓慢且重复的任务,而且您需要是一个开发人员/系统管理员才能完成。

这意味着如果您的产品经理想要更改主页的缓存有效期或每页可以显示的文章数量,他必须请求您,打电话给您,甚至在夜间唤醒您,跟踪您。

您注定要失败.

或者不是吗?通过将配置存储在Google文档中,您可以简单地将其提供给任何有足够责任理解每页产品数量:30意味着的人!他们可以更新文档,调用一个URL,该URL将使用这个库将其转换为键值数组并存储在redis中,您就可以愉快地委派任务,不再需要为配置更改进行部署!

使用方法

创建一个有两列的Google电子表格:第一列将表示配置键,第二列将表示值

a simple google doc

在这种情况下,您必须将Google文档发布到网络上,以便它可以在(类似)公共URL上可用

publish google doc

然后您只需运行以下代码,即可从您的Google文档中获取键值配置

<?php

$googleDocKey = '...' //ie. 0Au4X4OwTcvrSdG5oZkFXMXM5SUl4YVF5bDV2NmZiSmc
$gvalue       = new Namshi\Gvalue();

$configuration = $gvalue->getDocument($googleDocKey);

var_dump($configuration); // [a: b, 123: 456, ...]

要获取文档密钥,只需查看电子表格的URL即可,它将类似于https://docs.google.com/spreadsheet/ccc?key=0Au4X4OwTcvrSdG5oZkFXMXM5SUl4YVF5bDV2NmZiSmc#gid=0:该文档的密钥将是0Au4X4OwTcvrSdG5oZkFXMXM5SUl4YVF5bDV2NmZiSmc

安全性

如果您担心这种技术的安全性影响,请考虑以下内容

  • Google不会在任何地方发布Google文档链接,这意味着恶意用户必须 猜测
  • 您应该在文档中存储公共配置(例如,每页产品数量),而不是像SSH密钥或服务的凭据这样的关键信息

更新配置值

每次更新配置值时,您应该重新发布文档,以便更改立即可用。

测试

此库使用PHPUnit进行测试,只需从存储库的根目录运行phpunit即可。