garethtdavies / keen-io-laravel by garethtdavies

A minimal service provider to set up and use the Keen.io PHP library in Laravel 5
190,231
14
1
Package Data
Maintainer Username: garethtdavies
Maintainer Contact: hello@garethtdavies.com (Gareth Davies)
Package Create Date: 2015-06-26
Package Last Update: 2019-04-01
Home Page:
Language: PHP
License: MIT
Last Refreshed: 2024-11-09 15:00:58
Package Statistics
Total Downloads: 190,231
Monthly Downloads: 0
Daily Downloads: 0
Total Stars: 14
Total Watchers: 1
Total Forks: 5
Total Open Issues: 0

Keen.io Laravel Helper

A service provider and facade to set up and use the Keen.io PHP library in Laravel 5.

Build Status Total Downloads License

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.

Setup

  1. 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.*
    
  2. 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,
    )
    
  3. 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=
    

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.

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');
}