qodenl / laravel-posthog
Posthog 的 Laravel 实现
Requires
- php: ^8.0
- illuminate/support: ^9.0|^10.0|^11.0
- posthog/posthog-php: ^3.0
Requires (Dev)
- roave/security-advisories: dev-latest
README
本包为 Laravel 应用程序提供 Posthog 的简单集成。
该包涵盖了 Identify as Capture (事件) 请求,可以通过事件监听器手动或自动触发。
您还可以轻松地将功能标志集成到您的应用程序中。
此包使用 PostHog / posthog-php 包。有关 Posthog 的更多信息,请参阅他们的 文档。
安装
您可以通过 composer 安装此包
composer require qodenl/laravel-posthog
您可以使用以下命令发布配置文件
php artisan vendor:publish --provider="QodeNL\LaravelPosthog\PosthogServiceProvider"
发布内容后,在 .env 文件中设置您的 API 密钥和主机
POSTHOG_KEY= POSTHOG_HOST=https://posthog.com POSTHOG_ENABLED=true
确保您已从 Posthog 复制了正确的主机。
Posthog 默认启用,但您可以使用 POSTHOG_ENABLED 环境变量来禁用它。
确保禁用本地/测试环境中的 Posthog。
使用方法
手动事件
use QodeNL\LaravelPosthog\Facades\Posthog; Posthog::capture('event name', ['property' => 'value']);
自动事件
您可以将 PosthogListener::class
监听器添加到您的 EventServiceProvider
。当事件发生时,该包将自动创建捕获。
默认情况下,模型(在事件中可用)的所有 fillable
属性都将作为属性发送到 Posthog。
您可以通过在模型中添加 PosthogAttributes
属性来指定您想要发送到 Posthog 的属性。
public $posthogAttributes = [ 'first_name', 'last_name', ];
hidden
属性中的属性将始终被忽略。
Identify
事件将以匿名用户的唯一 ID 发送到 Posthog。当用户被识别(通常在登录时)时,您应该触发 identify
方法以将唯一 ID 连接到用户。
您可以将有关用户的附加信息传递给要存储在其配置文件中的用户。
use QodeNL\LaravelPosthog\Facades\Posthog; Posthog::identify('email@user.com', ['first_name' => 'John', 'last_name' => 'Doe']);
Alias
如果您想将一个会话 ID 分配给用户(例如前端会话 ID),则可以使用 alias
方法。
会话 ID 参数将被分配给用户自动生成的 ID。
Posthog::alias('Session ID here');
功能标志
获取所有功能标志
use QodeNL\LaravelPosthog\Facades\Posthog; Posthog::getAllFlags();
获取所有功能标志,包括用户是否启用。
检查功能是否启用
use QodeNL\LaravelPosthog\Facades\Posthog; Posthog::isFeatureEnabled('myFeatureFlagKey');
检查用户是否启用了功能。返回布尔值。
获取功能标志
use QodeNL\LaravelPosthog\Facades\Posthog; Posthog::getFeatureFlag('myFeatureFlagKey');
获取功能标志。如果功能已禁用,则返回 false
。如果设置,则返回 true
(或 payload
)。
可选属性
您可以将 groups
、personProperties
和 groupProperties
传递给 isFeatureEnabled 和 getFeatureFlag 函数。
请参阅 Posthog PHP 文档 了解更多信息。
在 Posthog 配置中,您可以配置是否将 事件 发送到 Posthog,以及您是否想 本地评估事件。
队列 / 任务
捕获、identify 和 alias 操作由作业执行。请确保您已为应用程序启用并配置了 队列。
变更日志
请参阅变更日志获取有关最近变更的更多信息。
致谢
- Christian Schoenmakers(Qode BV - 荷兰)(https://github.com/christianschoenmakers)
许可证
MIT许可证(MIT)。请参阅许可证文件获取更多信息。