2017 © Pedro Peláez
 

library phpinsights

A php wrapper for Googles page speed insights

image

dsentker/phpinsights

A php wrapper for Googles page speed insights

  • Monday, June 11, 2018
  • by dsentker
  • Repository
  • 3 Watchers
  • 91 Stars
  • 575 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 12 Forks
  • 0 Open issues
  • 4 Versions
  • 12 % Grown

The README.md

PhpInsights

An easy-to-use API Wrapper for Googles PageSpeed Insights. The JSON response is mapped to objects for an headache-free usage., (*1)

Installation

  1. Get an api key from the google developer console for Page Speed Insights.
  2. composer require dsentker/phpinsights
  3. Have fun with this library.

Usage

Simple Usage

$url = 'http://example.com';

$caller = new \PhpInsights\InsightsCaller('your-google-api-key-here', 'de');
$response = $caller->getResponse($url, \PhpInsights\InsightsCaller::STRATEGY_MOBILE);
$result = $response->getMappedResult();

var_dump($result->getSpeedScore()); // 100 
var_dump($result->getUsabilityScore()); // 100 

Using Concurrent Requests

$urls = array(
    'http://example.com', 
    'http://example2.com', 
    'http://example3.com'
);

$caller = new \PhpInsights\InsightsCaller('your-google-api-key-here', 'fr');
$responses = $caller->getResponses($urls, \PhpInsights\InsightsCaller::STRATEGY_MOBILE);

foreach ($responses as $url => $response) {
    $result = $response->getMappedResult();

    var_dump($result->getSpeedScore()); // 100 
    var_dump($result->getUsabilityScore()); // 100 
}

Result details

Full result

/** @var \PhpInsights\Result\InsightsResult $result */
foreach($result->getFormattedResults()->getRuleResults() as $rule => $ruleResult) {

    /*
     * If the rule impact is zero, it means that the website has passed the test.
     */
    if($ruleResult->getRuleImpact() > 0) {

        var_dump($rule); // AvoidLandingPageRedirects
        var_dump($ruleResult->getLocalizedRuleName()); // "Zielseiten-Weiterleitungen vermeiden"

        /*
         * The getDetails() method is a wrapper to get the `summary` field as well as `Urlblocks` data. You
         * can use $ruleResult->getUrlBlocks() and $ruleResult->getSummary() instead. 
         */
        foreach($ruleResult->getDetails() as $block) {
            var_dump($block->toString()); // "Auf Ihrer Seite sind keine Weiterleitungen vorhanden"
        }

    }

}

Result details by Rule group

/** @var \PhpInsights\Result\InsightsResult $result */
foreach($result->getFormattedResults()->getRuleResultsByGroup(RuleGroup::GROUP_SPEED) as $rule => $ruleResult) {
    $ruleResult->getSummary()->toString();
}

Screenshot

print $result->screenshot->getImageHtml(); // html image element
print $result->screenshot->getData(); // base64 screenshot representation 

Testing

$ phpunit --bootstrap "path/to/phpinsights/src/autoload.php", (*2)

Credits

Submitting bugs and feature requests

Bugs and feature request are tracked on GitHub., (*3)

ToDo

  • Write more tests
  • Improve my english skills

External Libraries

This library depends on JsonMapper by cweiske to map json fields to php objects and Guzzle (surprise!)., (*4)

PhpInsights is licensed for use under the MIT License (MIT). Please see LICENSE for more information., (*5)

The Versions

11/06 2018

dev-master

9999999-dev

A php wrapper for Googles page speed insights

  Sources   Download

The Requires

 

The Development Requires

06/12 2017

0.2.2

0.2.2.0

A php wrapper for Googles page speed insights

  Sources   Download

The Requires

 

The Development Requires

27/03 2017

0.2.1

0.2.1.0

A php wrapper for Googles page speed insights

  Sources   Download

The Requires

 

The Development Requires

13/01 2017

0.2.0

0.2.0.0

A php wrapper for Googles page speed insights

  Sources   Download

The Requires