diagvn / mixpanel
Mix Panel vendor custom by Diag
Installs: 30 351
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
Requires
- php: ^7.2.5 || ^8.0
- ext-json: *
- guzzlehttp/guzzle: ^7.0.1
- illuminate/support: ^5.2|^6.0|^7.0|^8.0
- nesbot/carbon: ^2.53.1
- psr/log: ^1.1 || ^2.0 || ^3.0
Requires (Dev)
- ext-curl: *
- bamarni/composer-bin-plugin: ^1.4.1
Suggests
- ext-curl: Required for CURL handler support
- ext-intl: Required for Internationalized Domain Name (IDN) support
- psr/log: Required for using the Log middleware
README
This library provides an API to track events and update profiles on Mixpanel.
Install with Composer
Add diagvn/mixpanel as a dependency and run composer update
"require": { ... "diagvn/mixpanel" : "1.*" ... }
Now you can start tracking events and people:
<?php // import dependencies use MixPanel\Services\MixPanelService; // get the MixPanelService class instance, replace with your project token $mp = new MixPanelService(); $mp->setToken("MIXPANEL_PROJECT_TOKEN"); // track an event $mp->track("button clicked", array("label" => "sign-up")); // create/update a profile for user id 12345 $mp->people->set(12345, array( '$first_name' => "John", '$last_name' => "Doe", '$email' => "john.doe@example.com", '$phone' => "5555555555", "Favorite Color" => "red" ));
Install Manually
- Download the Mixpanel PHP Library
- Extract the zip file to a directory called "mixpanel-php" in your project root
- Now you can start tracking events and people:
<?php // import dependencies use MixPanel\Services\MixPanelService; // get the MixPanelService class instance, replace with your project token $mp = new MixPanelService(); $mp->setToken("MIXPANEL_PROJECT_TOKEN"); // track an event $mp->track("button clicked", array("label" => "sign-up")); // create/update a profile for user id 12345 $mp->people->set(12345, array( '$first_name' => "John", '$last_name' => "Doe", '$email' => "john.doe@example.com", '$phone' => "5555555555", "Favorite Color" => "red" ));
Production Notes
By default, data is sent using ssl over cURL. This works fine when you're tracking a small number of events or aren't concerned with the potentially blocking nature of the PHP cURL calls. However, this isn't very efficient when you're sending hundreds of events (such as in batch processing). Our library comes packaged with an easy way to use a persistent socket connection for much more efficient writes. To enable the persistent socket, simply pass 'consumer' => 'socket'
as an entry in the $options
array when you instantiate the Mixpanel class. Additionally, you can contribute your own persistence implementation by creating a custom Consumer.
Documentation
For further examples and options checkout out the "examples" folder
Changelog
Version 1.4.2
- Init project