A service provider and facade to set up and use the Keen.io PHP library in Laravel 5.
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:
$event = ['purchase' => ['item' => 'Golden Elephant']];
Keen::addEvent('purchases', $event);
You should refer to the Keen PHP client for full details about all available methods.
-
Install the 'wensleydale/keen-io-laravel' package
Note, this will also install the required keen-io/keen-io package.
$ composer require wensleydale/keen-io-laravel:1.*
-
Update 'config/app.php'
# 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)
$ php artisan vendor:publish
Then either edit the keen.php file in the config directory or simply add the following to your .env file:
KEEN_PROJECT_ID= KEEN_MASTER_KEY= KEEN_WRITE_KEY= KEEN_READ_KEY=
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.
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');
}