hypefactors/laravel-follow
Composer 安装命令:
composer require hypefactors/laravel-follow
包简介
Laravel 9 Follow System for Eloquent models.
关键字:
README 文档
README
Laravel 10 Follow System for Eloquent models.
This package is compliant with the FIG standards PSR-1, PSR-2 and PSR-4 to ensure a high level of interoperability between shared PHP. If you notice any compliance oversights, please send a patch via pull request.
Version Matrix
| Version | Laravel | PHP Version |
|---|---|---|
| 9.x | 10.x | >= 8.1 |
| 8.x | 9.x | >= 8.0 |
| 7.x | 8.x | >= 7.3 |
| 6.x | 7.x | >= 7.2.5 |
| 5.x | 6.x | >= 7.2 |
| 4.x | 5.8.x | >= 7.1 |
| 3.x | 5.7.x | >= 7.1 |
| 2.x | 5.6.x | >= 7.1 |
| 1.x | 5.5.x | >= 7.0 |
Installation
You can install the package via composer:
composer require hypefactors/laravel-follow
The package will be automatically registered.
Now you need to run the migrations:
php artisan migrate
Usage
Preparing the Eloquent Models
To allow an entity to be followed or to follow other entities, the corresponding models have to implement an interface and make usage of a trait.
Here's how we do it for a User and Company entity, where a user will be able to follow a company and the company will be able to be followed:
<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; use Hypefactors\Laravel\Follow\Traits\CanFollow; use Hypefactors\Laravel\Follow\Contracts\CanFollowContract; class User extends Model implements CanFollowContract { use CanFollow; }
<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; use Hypefactors\Laravel\Follow\Traits\CanBeFollowed; use Hypefactors\Laravel\Follow\Contracts\CanBeFollowedContract; class Company extends Model implements CanBeFollowedContract { use CanBeFollowed; }
Note: If required, an entity can follow and can also be followed, just implement both interfaces and traits on the same model to achieve that requirement.
Following an Entity
You can follow an entity like this:
$company = Company::find(1); $user = User::find(1); $user->follow($company);
You can also perform the same through the entity that's going to be followed:
$user = User::find(1); $company = Company::find(1); $company->addFollower($user);
Follow Many Entities
You can follow many entities like this:
$companies = Company::whereIn('id', [1, 3, 10])->get(); $user = User::find(1); $user->followMany($companies);
You can also perform the same through the entity that's going to be followed:
$users = User::whereIn('id', [1, 3, 10])->get(); $company = Company::find(1); $company->addManyFollowers($users);
Unfollowing an Entity
You can unfollow an entity like this:
$company = Company::find(1); $user = User::find(1); $user->unfollow($company);
You can also perform the same through the entity that's going to be unfollowed:
$user = User::find(1); $company = Company::find(1); $company->removeFollower($user);
Unfollow Many Entities
You can unfollow many entities like this:
$companies = Company::whereIn('id', [1, 3, 10])->get(); $user = User::find(1); $user->unfollowMany($companies);
You can also perform the same through the entity that's going to be unfollowed:
$users = User::whereIn('id', [1, 3, 10])->get(); $company = Company::find(1); $company->removeManyFollowers($users);
Determining if an Entity is Following another Entity
You can unfollow an entity like this:
$company = Company::find(1); $user = User::find(1); $user->isFollowing($company);
You can also perform the same through the entity that's going to be followed:
$user = User::find(1); $company = Company::find(1); $company->hasFollower($user);
Determine if an Entity has Followings
$user = User::find(1); if ($user->hasFollowings()) { echo "User is following {$user->followings->count()} entities."; }
Determine if an Entity has Followers
$company = Company::find(1); if ($company->hasFollowers()) { echo "Company has {$company->followers->count()} followers."; }
Get list of Followings
To get a list of followings (entities another entity is following)
$user = User::find(1); $followings = $user->followings
Get List of Followers
To get a list of followers (entities that are following an entity)
$company = Company::find(1); $followers = $company->followers
Get List of Followings by Entity Type
Get a list of followings (entities another entity is following) and filter by an entity type
$user = User::find(1); $followings = $user->followings()->whereFollowableType(Company::class)->get();
Get List of Followers by Entity Type
Get a list of followers (entities that are following an entity) and filter by an entity type
$company = Company::find(1); $followers = $company->followers()->whereFollowerType(User::class)->get();
Contributing
Thank you for your interest in Laravel Follow. Here are some of the many ways to contribute.
- Check out our contributing guide
- Look at our code of conduct
Security
If you discover any security related issues, please email support@hypefactors.com instead of using the issue tracker.
License
Laravel Follow is licenced under the BSD 3-Clause License. Please see the license file for more information.
hypefactors/laravel-follow 适用场景与选型建议
hypefactors/laravel-follow 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 18.76k 次下载、GitHub Stars 达 49, 最近一次更新时间为 2017 年 08 月 26 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「php」 「laravel」 「Follow」 「hypefactors」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 hypefactors/laravel-follow 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 hypefactors/laravel-follow 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 hypefactors/laravel-follow 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Follow, Favourite, Bookmark, Like & Subscribe.
Displays a list of tags that the user is following in the sidebar.
Let users follow other users and elements (Categories, Tags etc) to generate lists & feeds.
Trait for Laravel Eloquent models to allow easy implementation of a 'like' or 'favorite' or 'remember' feature.
Add Likeable trait to Laravel Eloquent models
Follow and followers for laravel eloquent
统计信息
- 总下载量: 18.76k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 49
- 点击次数: 9
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: BSD-3-Clause
- 更新时间: 2017-08-26