/php-googleplaces

PHP Wrapper for the Google Places API

Primary LanguagePHPMIT LicenseMIT

php-googleplaces

Build Status Coverage Status Downloads Gittip

PHP Wrapper for the Google Places API.

Origins

Simply put, when I Googled “php google places” I was presented with Google-Places---PHP-. I attempted to use it, and it was fine as I was able to make it work, but there seemed to be a huge assumption that you already knew a lot of the quirks of the Google Places API.

I did not fit into this assumption and set out to built my own wrapper with a heavy focus on sanity checking inputs, utilizing the magical parts of PHP (reads: you interact directly with the object as you would the API) and avoiding setter methods as they were put here by the devil.

I opted not to fork because I was going to change too much and I highly doubt my pull requests would have even been accepted.

Usage Examples

Getting started

require_once 'GooglePlaces.php';
$google_places = new GooglePlaces('_YOUR_API_KEY_');

Search nearby, ranked by prominence

$google_places->location = array(-33.86820, 151.1945860);
$google_places->radius   = 800;
$results                 = $google_places->nearbySearch();

Search nearby, ranked by distance

$google_places->location = array(-33.86820, 151.1945860);
$google_places->rankby   = 'distance';
$google_places->types    = 'restaurant'; // Requires keyword, name or types
$results                 = $google_places->nearbySearch();

Second page of search nearby results

$google_places->pagetoken = $results['next_page_token'];
$page2_results            = $google_places->nearbySearch();

Radar search

$google_places->location = array(-33.86820, 151.1945860);
$google_places->radius   = 800;
$google_places->types    = 'restaurant'; // Requires keyword, name or types
$results                 = $google_places->radarSearch();

Place details

$google_places->reference = '#reference#'; // Reference from search results
$details                  = $google_places->details();

The Future

The project that I created this library for is now defunct so I’m not actively using it or hacking on it. That being said, if there’s something you want to see included or you find a bug, just open an issue or grow a pair and fork, hack and send a pull request ;)