juzaweb/referral
Composer 安装命令:
composer require juzaweb/referral
包简介
Juzaweb CMS Referral module
README 文档
README
The Juzaweb Referral Module provides a flexible and polymorphic referral system for Juzaweb CMS. It allows any model (like User) to generate referral codes, act as a referrer, and track referred entities.
Features
- Polymorphic Referrals: Any model can refer or be referred by any other model.
- Unique Referral Codes: Generates unique, customizable referral codes automatically.
- Easy Integration: Simply add a trait to your models to enable referral functionality.
Installation
Install via Composer:
composer require juzaweb/referral
Then, you can publish and run the migrations if required (typically handled by the Juzaweb module manager):
php artisan module:migrate Referral
Usage
1. Enable Referrals on Your Model
Add the HasReferrals trait to any Eloquent model (e.g., your User model) that will participate in the referral system.
namespace App\Models; use Juzaweb\Modules\Core\Models\User as BaseUser; use Juzaweb\Modules\Referral\Traits\HasReferrals; class User extends BaseUser { use HasReferrals; }
2. Generating Referral Codes
You can generate a unique referral code statically.
$code = User::generateReferralCode();
Note: The generator handles uniqueness automatically and increases length to prevent infinite loops.
3. Creating a Referral
When a new entity signs up using a referral link or code, you can link the new entity (the "referred") to the existing entity (the "referrer"):
$referrer = User::find(1); $referred = User::find(2); // Make the referral $referral = $referrer->refer($referred);
4. Retrieving Referrals
You can easily retrieve all referrals sent or received by a model.
Get all users referred by this user:
$user = User::find(1); $referralsSent = $user->referralsSent; foreach ($referralsSent as $referral) { // Access the referred model instance $referredModel = $referral->referred; }
Get the user who referred this user:
$user = User::find(2); $referralsReceived = $user->referralsReceived; foreach ($referralsReceived as $referral) { // Access the referrer model instance $referrerModel = $referral->referrer; }
Models Overview
Referral: Represents a referral record. It uses polymorphic relations (referrer_id,referrer_type,referred_id,referred_type) to link two models together.ReferralCode: Stores the unique referral codes generated by the referrers.
Testing
Run tests using PHPUnit.
vendor/bin/phpunit
License
This project is licensed under the MIT license.
juzaweb/referral 适用场景与选型建议
juzaweb/referral 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 15 次下载、GitHub Stars 达 1, 最近一次更新时间为 2024 年 02 月 18 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 juzaweb/referral 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 juzaweb/referral 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 15
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 12
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2024-02-18