受 Cloudant 和 Bluemix 支持的动态 Google Gauge(5)
 
- UID
- 1066743
|

受 Cloudant 和 Bluemix 支持的动态 Google Gauge(5)
第 5 步. 查看 PHP 代码现在您已经有了一个能正常工作的示例,我们来看一看连接到 Cloudant 数据库,并检索 Google Gauge 的数据的 PHP 代码:
- 打开一个浏览器并登录到 DevOps Services。
- 选择 DynamicGoogleGauge-dw-demo 项目。
- 在项目内,找到 index.php 文件,其中包含连接到数据库并检索数据的 PHP 逻辑。
在 index.php 文件中,可以同时看到 PHP 和 HTML 标记。PHP 标记内的操作在服务器上运行。
index.php 文件中的第一行代码的用途是获取 。SAG 主库位于项目的 sag-master 目录中。
1
| require('sag-master/src/Sag.php');
|
在能够访问 SAG 库之后,就可以使用 index.php 文件中的代码连接到数据库并检索数据。
如下所示,下一部分 PHP 代码将读取 VCAP_SERVICES 环境变量,并提取用户 ID 和密码。此变量仅位于服务器上;因此可以使用它存储您代码中需要的敏感数据。请记住,访问您的 DevOps Services 项目的任何人都可以看到您的代码。
1
2
3
4
5
6
7
8
| // vcap_services Extraction
$services_json = json_decode(getenv('VCAP_SERVICES'),true);
$VcapSvs = $services_json["user-provided"][0]["credentials"];
// Extract the VCAP_SERVICES variables for Cloudant connection.
$myUsername = $VcapSvs["username"];
$myPassword = $VcapSvs["password"];
// Create the URL for the SAG PHP utility.
$myUrl = ($myUsername . ".cloudant.com");
|
以下代码将与 Cloudant 建立连接:
1
2
| $sag = new Sag($myUrl);
$sag->login($myUsername, $myPassword);
|
接下来,让该连接指向 gauge 数据库。
1
| $sag->setDatabase('gauge');
|
下一步是从 Gauge-Data 文档请求数据,该文档被存储在 gauge 数据库中。结果被存储在 $resp 对象中。稍后在 JavaScript 中会用到该值。
1
| $resp = $sag->get('Gauge-Data')->body->GaugeValue;
|
最后一步是使用从数据库返回的数据来填充 Google Gauge 的值(量表中的刻度盘)。
备注:以下 JavaScript 在浏览器中的客户端上运行。清单中的 PHP 代码在服务器端运行,echo 语句的结果嵌入在 HTML 中,然后再发送给客户端。如果查看客户端上的 HTML 源代码,则不会看到任何 PHP 代码,只会看到从数据库返回的值。
1
2
3
4
| var gaugeData = google.visualization.arrayToDataTable([
['Label', 'Value'],
['Value', <?php echo $resp; ?>]
]);
|
|
|
|
|
|
|