laravel-hubspot
laravel-hubspot copied to clipboard
HubSpot PHP API Client Wrapper for Laravel
HubSpot PHP API Client Wrapper for Laravel
This is a wrapper for the hubspot/hubspot-php package and gives the user a Service Container binding and facade of the SevenShores\Hubspot\Factory::create('api-key') function.
Installation
composer require rossjcooper/laravel-hubspot- Get a HubSpot API Key from the Intergrations page of your HubSpot account.
- Laravel 5.4 or earlier, in your
config/app.phpfile:- Add
Rossjcooper\LaravelHubSpot\HubSpotServiceProvider::classto your providers array. - Add
'HubSpot' => Rossjcooper\LaravelHubSpot\Facades\HubSpot::classto your aliases array.
- Add
php artisan vendor:publish --provider="Rossjcooper\LaravelHubSpot\HubSpotServiceProvider" --tag="config"will create aconfig/hubspot.phpfile.- Add your HubSpot API key into the your
.envfile:HUBSPOT_API_KEY=yourApiKey
Usage
You can use either the facade or inject the HubSpot class as a dependency:
Facade
// Echo all contacts first and last names
$response = HubSpot::contacts()->all();
foreach ($response->contacts as $contact) {
echo sprintf(
"Contact name is %s %s." . PHP_EOL,
$contact->properties->firstname->value,
$contact->properties->lastname->value
);
}
Dependency Injection
Route::get('/', function (Rossjcooper\LaravelHubSpot\HubSpot $hubspot) {
$response = $hubspot->contacts()->all();
foreach ($response->contacts as $contact) {
echo sprintf(
"Contact name is %s %s." . PHP_EOL,
$contact->properties->firstname->value,
$contact->properties->lastname->value
);
}
});
For more info on using the actual API see the main repo hubspot/hubspot-php
Testing
We're using the brilliant Orchestra Testbench v4 to run unit tests in a Laravel based environment. If you wish to run tests be sure to have a HubSpot API key inside your .env file and run ./vendor/bin/phpunit
Current unit test access the HubSpot API and expect to see the demo contacts/leads that HubSpot provides to its developer accounts.
Issues
Please only report issues relating to the Laravel side of things here, main API issues should be reported here