如何访问gtmetrix API中的受保护属性

时间:2017-07-08 18:28:45

标签: php api

我正在使用GTMATRIX api来获取pagespeedscore和其他数据。我正在使用这个库https://github.com/entrecore/php-gtmetrix。到目前为止,我创建了index.php文件并将结果显示为:

<?php
require_once('vendor/autoload.php');
use Entrecore\GTMetrixClient\GTMetrixClient;
use Entrecore\GTMetrixClient\GTMetrixTest;

$client = new GTMetrixClient();
$client->setUsername('shahroze.nawaz@cloudways.com');
$client->setAPIKey('e16345e33e9d3371b2d64bb93dc56189');

$client->getLocations();
$client->getBrowsers();
$test = $client->startTest('https://www.cloudways.com/en/');

//Wait for result
while ($test->getState() != GTMetrixTest::STATE_COMPLETED &&
    $test->getState() != GTMetrixTest::STATE_ERROR) {
    $final = $client->getTestStatus($test);
}

echo '<pre>';
var_dump($final);
echo '</pre>';

这将提供以下输出:

enter image description here

问题是,我无法访问受保护的媒体资源和文件网址,我们将不胜感激。

感谢。

1 个答案:

答案 0 :(得分:1)

这是因为您返回了一个对象GTMetrixTest

如果您看一下source code of this class,您会发现所有受保护的东西都有公共吸气剂。

所以,阅读课程,你会发现这个公共职能:

/**
 * @return array
 */
public function getResources() {
    return $this->resources;
}

因此,在您的代码中,您将稍后致电

$resources = $final->getResources();
var_dump($resources); //should return accessible array