1. Go to this page and download the library: Download octohk/laravel-segment library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
octohk / laravel-segment example snippets
return [
'enabled' => env('SEGMENT_ENABLED', true),
/**
* This is your Segment API write key. It can be
* found under Source > Settings > Api Keys
*/
'write_key' => env('SEGMENT_WRITE_KEY', null),
/**
* Should the Segment service defer all tracking
* api calls until after the response, sending
* everything using the bulk/batch api?
*/
'defer' => env('SEGMENT_DEFER', false),
/**
* Should the Segment service be run in safe mode.
* Safe mode will only report errors in sending
* when safe mode is off exceptions are thrown
*/
'safe_mode' => env('SEGMENT_SAFE_MODE', true),
];
use Illuminate\Database\Eloquent\Model;
use SlashEquip\LaravelSegment\Traits\HasSegmentIdentityByKey;
use SlashEquip\LaravelSegment\Contracts\CanBeIdentifiedForSegment;
class User extends Model implements CanBeIdentifiedForSegment
{
use HasSegmentIdentityByKey;
}
use SlashEquip\LaravelSegment\Facades\Segment;
Segment::setGlobalUser($user);
'api' => [
// ... other middleware
SlashEquip\LaravelSegment\Middleware\ApplySegmentGlobals::class
],
use SlashEquip\LaravelSegment\Facades\Segment;
Segment::forUser($user)->track('User Signed Up', [
'source' => 'Product Hunt',
]);
// If you have set a global user you can
// use the simpler provided syntax.
Segment::track('User Signed Up', [
'source' => 'Product Hunt',
]);
// If you have defer enabled in the config
// you can still track an event immediately using trackNow.
Segment::trackNow('User Signed Up', [
'source' => 'Product Hunt',
]);
use SlashEquip\LaravelSegment\Facades\Segment;
Segment::forUser($user)->identify([
'last_logged_in' => '2021-03-24 20:05:30',
'latest_subscription_amount' => '$24.60',
]);
// If you have set a global user you can
// use the simpler provided syntax.
Segment::identify([
'last_logged_in' => '2021-03-24 20:05:30',
'latest_subscription_amount' => '$24.60',
]);
// If you have defer enabled in the config
// you can still identify a user immediately using identifyNow.
Segment::identifyNow('User Signed Up', [
'source' => 'Product Hunt',
]);
use SlashEquip\LaravelSegment\Contracts\CanBeIdentifiedForSegment;
use SlashEquip\LaravelSegment\Contracts\ShouldBeAnonymouslyIdentified;
class SegmentAnonymousTestUser implements CanBeIdentifiedForSegment, ShouldBeAnonymouslyIdentified
{
}
use SlashEquip\LaravelSegment\SimpleSegmentAnonymousUser;
Segment::forUser(new SimpleSegmentAnonymousUser('123'))->track('Kitchen sink used');
use Illuminate\Notifications\Notification;
use SlashEquip\LaravelSegment\Contracts\CanBeIdentifiedForSegment;
use SlashEquip\LaravelSegment\Contracts\CanBeSentToSegment;
use SlashEquip\LaravelSegment\Contracts\CanNotifyViaSegment;
use SlashEquip\LaravelSegment\Notifications\SegmentChannel;
use SlashEquip\LaravelSegment\SimpleSegmentEvent;
class UserSubscribed extends Notification implements CanNotifyViaSegment
{
public function __construct(
) {
}
public function via(object $notifiable): array
{
return [SegmentChannel::class];
}
public function toSegment(CanBeIdentifiedForSegment $notifiable): CanBeSentToSegment
{
return new SimpleSegmentEvent(
$notifiable,
'User Subscribed',
[
'plan' => 'basic',
'team_name' => 'Funky chickens',
],
);
}
}