synchro / segment
A Segment bridge for Laravel
Requires
- php: ^8.2
- illuminate/config: ^11.0 || ^12.0
- illuminate/support: ^11.0 || ^12.0
- segmentio/analytics-php: ^3.8.1
Requires (Dev)
- graham-campbell/analyzer: ^4.2.0
- graham-campbell/testbench: ^6.0
- laravel/pint: ^1.24
- phpunit/phpunit: ^11.0
Replaces
- alt-three/segment: ^3.5.0
This package is auto-updated.
Last update: 2025-08-05 08:35:52 UTC
README
This package is a Segment bridge for Laravel, which relies on Segment's own PHP library. This version requires PHP 8.2 and up, and supports Laravel 11 – 12. 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:
Version 4.0 of this package supports Laravel 9 and 10, and requires PHP 8.1 or later.
$ composer require synchro/segment:^4.0
Version 5.0 of this package supports Laravel 11 and 12, and requires PHP 8.2 or later.
$ composer require synchro/segment:^5.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 Laravel Pint using the default Laravel coding standard. Check for coding standards and apply automatic fixes by running ./vendor/bin/pint
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).