dev-master
9999999-devSymfony2 wrapper around HaPi Harvest API client for app usage
MIT
The Requires
- php >=5.3.2
- symfony/framework-bundle 2.*
- mdbitz/hapi *
by Matthew Vickery
api harvest
Symfony2 wrapper around HaPi Harvest API client for app usage
Symfony2 wrapper around HaPi Harvest API client for app usage., (*1)
MattvickHarvestAppBundle is just a simple proxy bundle between HaPi HarvestAPI client and symfony2. It is only meant to be used as a clientless app., (*2)
Code borrowed heavily from InoriTwitterAppBundle a great Twitter bundle and inspired by Harvest4Clients a, (*3)
Example use-case for this bundle would be display Harvest data (from your project account) about clients, projects or tasks etc in your system., (*4)
Add this bundle and the HaPi package to your composer.json:, (*5)
// composer.json { // ... require: { // ... "mattvick/harvest-app-bundle": "master" } // ... "repositories": [ // ... { "type": "package", "package": { "name": "mdbitz/hapi", "version": "1.1.1", "dist": { "url": "http://labs.mdbitz.com/wp-content/uploads/2010/10/HaPi-1.1.1.zip", "type": "zip" } } } ], }
Open up your app/autoload.php
file and add the HaPi HarvestAPI Autoloader:, (*6)
//app/autoload.php // ... require_once __DIR__.'/../vendor/mdbitz/hapi/HarvestAPI.php'; spl_autoload_register( array('HarvestAPI', 'autoload') ); // ...
This tells Symfony2 where it can locate your HarvestAPI
class. Since HaPi Harvest API does not
yet follow the PSR-0 Naming standards its autoloader has to be attached manually., (*7)
Add this bundle to your application's kernel:, (*8)
//app/AppKernel.php public function registerBundles() { return array( // ... new Mattvick\HarvestAppBundle\MattvickHarvestAppBundle(), ); }
Configure the harvest_app
service in your YAML configuration:, (*9)
#app/config/config.yml mattvick_harvest_app: user: xxxxxx # this is your email address password: xxxxxx account: xxxxxx # this is your Harvest subdomain (see below)
NB! The account
is the Harvest subdomain you use to access Harvest, such as: https://subdomain.harvestapp.com/., (*10)
Now tell composer to download the bundle by running the command:, (*11)
$ php composer.phar update mattvick/harvest-app-bundle
If the setup is done correctly, then you can start using HarvestApp like this:, (*12)
// ... $api = $this->container->get('harvest_app')->getApi();
An example use in a controller is as follows:, (*13)
// ... $api = $this->get('harvest_app')->getApi(); $result = $api->getClient(123456); if ($result->isSuccess()) { $client = $result->data; }
To use the advanced reporting functions of HarvestReports:, (*14)
// ... $api = $this->container->get('harvest_app_reports')->getApi();
An example use in a controller is as follows:, (*15)
// ... $api = $this->get('harvest_app_reports')->getApi(); $result = $api->getActiveProjects(); if ($result->isSuccess()) { $projects = $result->data; }
See the HaPi Harvest API documentation for more examples., (*16)
Symfony2 wrapper around HaPi Harvest API client for app usage
MIT
api harvest