Keen.io Laravel Helper
A service provider and facade to set up and use the Keen.io PHP library in Laravel 5., (*1)
, (*2)
This package consists of a service provider, which binds an instance of an initialized Keen.io client to the
IoC-container and a Keen facade so you may access all methods of the Keen-io class via the syntax:, (*3)
$event = ['purchase' => ['item' => 'Golden Elephant']];
Keen::addEvent('purchases', $event);
You should refer to the Keen PHP client for full details about all
available methods., (*4)
Setup
-
Install the 'wensleydale/keen-io-laravel' package, (*5)
Note, this will also install the required keen-io/keen-io package., (*6)
$ composer require wensleydale/keen-io-laravel:1.*
-
Update 'config/app.php', (*7)
# Add `KeenLaravelServiceProvider` to the `providers` array
'providers' => array(
...
Wensleydale\KeenLaravel\KeenLaravelServiceProvider::class,
)
# Add the `KeenFacade` to the `aliases` array
'aliases' => array(
...
'Keen' => Wensleydale\KeenLaravel\KeenFacade::class,
)
-
Publish the configuration file (creates keen.php in config directory), (*8)
$ php artisan vendor:publish
Then either edit the keen.php file in the config directory or simply add the following to your .env file:, (*9)
KEEN_PROJECT_ID=
KEEN_MASTER_KEY=
KEEN_WRITE_KEY=
KEEN_READ_KEY=
Type Hinting
If you do not wish to make use of the Keen facade you may simply "type-hint" the KeenIOClient dependency in the
constructor of a class that is resolved by the IoC container and an instantiated client will be ready for use., (*10)
use KeenIO\Client\KeenIOClient;
private $client;
public function __construct(KeenIOClient $client)
{
$this->client = $client;
}
public function addEvent()
{
$event = ['purchase' => ['item' => 'Golden Elephant']];
$this->client->addEvent('purchases', $event);
//Or overwrite defaults
$this->client->setProjectId('new-project-id');
}