tizis/achievements
Composer 安装命令:
composer require tizis/achievements
包简介
README 文档
README
This package can be used to add interacts with achievements on any model you have in your application.
"php": "^7.1|^8.0",
"illuminate/support": "^8.0",
Install
composer require tizis/achievements
Publish Migrations & Migrate
php artisan vendor:publish --provider="tizis\achievements\Providers\ServiceProvider" --tag=migrations`
php artisan migrate
Publish Config & configure (optional)
php artisan vendor:publish --provider="tizis\achievements\Providers\ServiceProvider" --tag=config
Examples
use tizis\achievements\Contracts\HasAchievements; use tizis\achievements\Traits\InteractsWithAchievements; class User extends Authenticatable implements HasAchievements { use InteractsWithAchievements; }
Example #1: Basic
use App\Models\User; use tizis\achievements\Entity\Achievement; use tizis\achievements\Entity\Group; use tizis\achievements\Entity\GroupNamespace; use tizis\achievements\Services\GroupAchievementService; ... $createdGroup = new Group([ 'title' => 'Running', 'description' => 'Sport is cool', 'hash' => 'sport_activities_running', 'meta' => 'keywords or something like' ]); $createdGroupNamespace = GroupNamespace::create(['title' => 'Activities']); $createdGroupNamespace->groups()->save($createdGroup); $createdGroup->achievements()->saveMany([ new Achievement([ 'title' => 'Running: Beginner', 'level' => 1, 'description' => 'optional', 'points' => '10', //to next level 'value' => '1000' // it's just abstract achievement 'value' ]), new Achievement([ 'title' => 'Running: Pro', 'level' => 2, 'description' => 'optional', 'points' => '100', //to next level 'value' => '1000000' // it's just abstract achievement 'value' ]) ]); $user = User::where('id', 1)->first(); $service = new GroupAchievementService($user); $service->addProgress($createdGroup, 20);
Example #2: Basic 2
use App\Models\User; use tizis\achievements\Entity\Group; use tizis\achievements\Services\GroupAchievementService; ... $group = Group::where('hash', 'sport_activities_running')->firstOrFail(); $user = User::where('id', 1)->first(); $service = new GroupAchievementService($user); $service->removeProgress($group, 20);
Example #3: Achievement without group
use App\Models\User; use tizis\achievements\Entity\Achievement; use tizis\achievements\Services\AchievementService; ... $createdSingleAchievement = Achievement::create([ 'title' => 'Running: Beginner', 'level' => 1, 'description' => 'optional', 'points' => '100', //to next level 'value' => '1000' // it's just abstract achievement 'value' ]); $user = User::where('id', 1)->first(); $service = new AchievementService($user); $service->addProgress($createdSingleAchievement, '100');
Example #4: Helper
use App\Models\User; use tizis\achievements\AchievementHelper; ... $user = User::where('id', 1)->first(); AchievementHelper::count($user); // return count of user's unlocked achievements AchievementHelper::lastUnlockedAchievements($user, 100); // return last 100 unlocked achievements AchievementHelper::lastUnlockedAchievement($user); // return last unlocked achievement AchievementHelper::getUnlockedUniqueAchievementsOfUser($user); // return unlocked unique achievements (without group)
tizis/achievements 适用场景与选型建议
tizis/achievements 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 309 次下载、GitHub Stars 达 22, 最近一次更新时间为 2021 年 04 月 15 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 tizis/achievements 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 tizis/achievements 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 309
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 22
- 点击次数: 7
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2021-04-15