valsplat / harvest-php-client
This package is abandoned and no longer maintained.
No replacement package was suggested.
A PHP Client for the Harvest V2 API
v1.0
2019-01-04 16:22 UTC
Requires
- php: >=7.1
- guzzlehttp/guzzle: ~6.0
This package is auto-updated.
Last update: 2021-09-11 07:46:01 UTC
README
(Unofficial) Harvest v2 API Client for PHP
Contributing
$ git clone git@github.com:valsplat/harvest-php-client.git
$ cd harvest-php-client
$ composer update -o
Installation
$ composer require valsplat/harvest-php-client
Endpoints
This API client is very much a work in progress and is incomplete at this time. You can only use the Client
, Project
, Task
, TaskAssignment
, User
and UserAssignment
endpoints. Feel free to create a Pull Request to increase coverage.
Authentication
Authentication is done via providing your account ID and a personal access token:
$connection = new \Valsplat\Harvest\Connection();
$connection->setAccessToken('ACCESS_TOKEN');
$connection->setAccountId('ACCOUNT_ID');
Get your token and account ID here: https://id.getharvest.com/oauth2/access_tokens/new
Errors
The API client throws two exceptions:
\Valsplat\Harvest\Exceptions\NotFoundException
- Entity could not be found\Valsplat\Harvest\Exceptions\ApiException
- Generic Api exception
Basic Usage
Each endpoint is accessible via its own method on the \Valsplat\Harvest\Harvest
instance. The method name is singular, camelcased:
$vlak = new \Valsplat\Harvest\Harvest($connection);
$vlak->TaskAssignment();
Generic methods & filters
list((array)params)
- get a collection of entities. You find the available params per endpoint in the Harvest docs.get((int)id)
- get a single entity via its id.create()
- create given entity.update()
- update given entity.save()
- convenience method; callsupdate()
if the entity already exists,create()
otherwise.delete()
- delete given entity.
Usage examples
Authentication and usage examples: example.php
TODO
- Tests w/ mocked http client
- Complete endpoint support
- Automatic marshaling of attributes