geotab / mygeotab-php
Unofficial PHP client for the MyGeotab API
Installs: 190 585
Dependents: 0
Suggesters: 0
Security: 0
Stars: 5
Watchers: 8
Forks: 22
Open Issues: 1
Requires
- php: >=7.1.0
- guzzlehttp/guzzle: ^7.0.1
- monolog/monolog: ^3.0
Requires (Dev)
- phpunit/phpunit: ^9.5.21
README
Provides a PHP client that can easily make API requests to a MyGeotab server.
Installation
You can use composer and run the following command in your repo:
composer require mygeotab-php
This repository requires PHP >=7.1, but if you're going to try integrate this into older versions
then you can look at the code in src
directly.
Quick start
$api = new Geotab\API("user@example.com", "password", "DatabaseName", "my.geotab.com"); $api->authenticate(); $api->get("Device", ["resultsLimit" => 1], function ($results) { var_dump($results); }, function ($error) { var_dump($error); });
Instead of using the callback syntax, you can simply use the return result directly. Keep in mind, if an error occurs you won't be informed! It will throw as a MyGeotabException
, so remember to use try & catch.
$toDate = new DateTime(); $fromDate = new DateTime(); $fromDate->modify("-1 month"); try { $violations = $api->get("DutyStatusViolation", [ "search" => [ "userSearch" => ["id" => "b1"], "toDate" => $toDate->format("c"), // ISO8601, or could use "2018-11-03 00:53:29.370134" "fromDate" => $fromDate->format("c") ], "resultsLimit" => 10 ]); } catch (Exception $e) { // Handle this or return } echo "The driver has " . count($violations) . " violations!";
Examples
In the examples
folder, you can see the "Top Speeding Violations" example that was presented in the Dev Channel video. The code is not yet hooked up with the Node server and will likely
have difficulty with PSR, but the code is there and should be easy to understand.
Trick: PHP-CGI NodeJS server
If you have a PHP-CGI handler installed, you can run a web server with
just server.js
in NodeJS. I found this quick and easy on Windows instead of setting up a complex web server.
First, find the php-cgi executable on your machine (e.g. C:\Program Files\PHP\v7.2\php-cgi.exe) and place that in the file. Then run:
npm install
node server.js
Should now visit localhost:8080/sample.php and voila - you're serving PHP from a NodeJS server!