synchro/segment

A Segment bridge for Laravel

v4.0.0 2023-04-12 08:28 UTC

README

Build Status Packagist Downloads Latest Version

This package is a Segment bridge for Laravel, which relies on Segment's own PHP library. This version requires PHP 8.1 and up, and supports Laravel 9 – 10. This package was originally written by Graham Campbell for Alt Three, but was abandoned in April 2022. This fork was resurrected in April 2023 by Marcus Bointon (@Synchro).

Installation

Install the package using Composer:

$ composer require synchro/segment:^4.0

Once installed, if you are not using automatic package discovery, then you need to register the Synchro\Segment\SegmentServiceProvider service provider in your config/app.php.

Configuration

Segment requires configuration.

To get started, you'll need to publish all vendor assets:

$ php artisan vendor:publish

This will create a config/segment.php file in your app that you can modify to set your configuration. Also, make sure you check for changes to the original config file in this package between releases.

Usage

Once you've set your write_key value in the configuration, you're ready to go! For the most part you can follow Segment's own instructions however, you'll want to replace the Analytics classname with Segment - plus, you don't need to call class_alias.

Identify the user

Segment::identify([
    'userId' => '12345abcde',
    'traits' => [
        'name' => 'James Brooks',
        'email' => 'test@test.com',
    ],
]);

Track actions

Segment::track([
    'userId' => '12345abcde',
    'event' => 'Did something',
    'properties' => [
        'was_awesome' => true,
    ],
]);

Tests

Run tests with ./vendor.bin/phpunit or composer test.

Coding standards

Coding standards are checked and enforced using Tighten's Duster package using the default Laravel coding standard. Check for coding standards issues by running ./vendor/bin/duster lint, and apply automatic fixes using ./vendor/bin/duster fix, or composer cs. These checks are also run using GitHub actions.

Security

Our security policy is available to read here.

License

This library is licensed under The MIT License (MIT).