okatsuralau / cakephp-mixpanel
CakePHP plugin providing easy integration with Mixpanel's analytics
Installs: 35
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 1
Open Issues: 0
Type:cakephp-plugin
Requires
- php: >=5.6
- mixpanel/mixpanel-php: ^2.6
Requires (Dev)
- cakephp/cakephp: ^3.2
- phpunit/phpunit: ^6.1
This package is not auto-updated.
Last update: 2024-11-10 03:36:12 UTC
README
CakePHP Mixpanel Plugin
This plugin provides a Mixpanel component to track events from your controllers using the official Mixpanel PHP library.
Requirements
- PHP >= 5.6
- CakePHP >= 3.0
How to Install
composer require okatsuralau/cakephp-mixpanel@1.0.0
How to Use
Load the plugin in your config/bootstrap.php
file:
Plugin::load('CakephpMixpanel');
Add the plugin configurations in your config/app.php
or config/app_custom.php
file:
return [ //... 'Mixpanel' => [ 'token' => YOUR_TOKEN_HERE ] ]
Load the component in your src/Controller/AppController.php
public function initialize() { parent::initialize(); $this->loadComponent('CakephpMixpanel.Mixpanel'); }
and (optionally) add the following code to your beforeFilter()
method to identify the users actions
public function beforeFilter(\Cake\Event\Event $event) { // if a user is logged in $this->Mixpanel->identify($user_id); $this->Mixpanel->name_tag($user_name); $this->Mixpanel->register($superProperties); /* To make use of the people API */ $this->Mixpanel->people($this->Auth->user('id'), array( '$username' => $this->Auth->user('username'), '$email' => $this->Auth->user('email'), '$created' => $this->Auth->user('created'), '$last_login' => $this->Auth->user('connected'), 'my_custom_var' => $my_custom_var, )); // ... parent::beforeFilter($event); }
To register an event, put the following code in your controller action.
src/Controller/PostController.php
public function index() { // ... $this->Mixpanel->track( 'Post list', [ 'author' => $this->Auth->user('name'), 'category' => 'Post', ] ); } public function create() { if ($this->request->is('post')) { // ... $this->Mixpanel->track( 'Post Created', [ 'author' => $this->Auth->user('name'), 'category' => 'Post', ] ); $this->redirect(array('action'=>'index')); } }
This should be enough to start sending events to Mixpanel.
License
Copyright 2017 Gabriel Lau
Available for you to use under the MIT license. See: http://www.opensource.org/licenses/MIT