liliom / laravel-acquaintances
This light package, with no dependencies, gives Eloquent models the ability to manage friendships (with groups), verifications, and interactions such as: Likes, favorites, votes, subscribe, follow, ..etc. And it includes advanced rating system.
Installs: 2 311
Dependents: 0
Suggesters: 0
Security: 0
Stars: 832
Watchers: 16
Forks: 74
Open Issues: 17
Requires
- php: >=8.0
Requires (Dev)
- codeclimate/php-test-reporter: ^0.3.2
- doctrine/dbal: ^2.5
- fzaninotto/faker: ~1.4
- laravel/laravel: 5.*|^9.0|^10.0|^11.0
- mockery/mockery: 1.0.x-dev
- phpunit/phpunit: 5.*
This package is auto-updated.
Last update: 2025-08-16 10:55:53 UTC
README
Clean, modular social features for Eloquent models: Friendships, Verifications, Interactions (Follow/Like/Favorite/Report/Subscribe/Vote/View), and multi-type Ratings.
- PHP >= 8.0
- Illuminate components ^9.0 | ^10.0 | ^11.0 | ^12.0 (Laravel 9–12)
- Laravel News: https://laravel-news.com/manage-friendships-likes-and-more-with-the-acquaintances-laravel-package
TL;DR
$user1 = User::find(1); $user2 = User::find(2); // Friendships $user1->befriend($user2); $user2->acceptFriendRequest($user1); // The messy breakup :( $user2->unfriend($user1); // Verifications (message is optional) $user1->verify($user2, "Worked together on several Laravel projects."); $user2->acceptVerificationRequest($user1); if ($user1->isVerifiedWith($user2)) { echo "Verified!"; }
Documentation
To keep this README concise, the full documentation lives under docs/:
- Overview
- Installation
- Configuration
- Friendships
- Verifications
- Interactions (Follow/Like/Favorite/Report/Subscribe/Vote/View)
- Ratings
- Migrations
- Events
- Testing
- FAQ
- Upgrade Notes
Quickstart
- Install
composer require multicaret/laravel-acquaintances
- Publish (optional) and migrate
php artisan vendor:publish --provider="Multicaret\\Acquaintances\\AcquaintancesServiceProvider"
php artisan migrate
- Add traits to your models
use Multicaret\\Acquaintances\\Traits\\Friendable; use Multicaret\\Acquaintances\\Traits\\Verifiable; use Multicaret\\Acquaintances\\Traits\\CanFollow; use Multicaret\\Acquaintances\\Traits\\CanBeFollowed; use Multicaret\\Acquaintances\\Traits\\CanLike; use Multicaret\\Acquaintances\\Traits\\CanBeLiked; use Multicaret\\Acquaintances\\Traits\\CanRate; use Multicaret\\Acquaintances\\Traits\\CanBeRated; class User extends Model { use Friendable, Verifiable; use CanFollow, CanBeFollowed; use CanLike, CanBeLiked; use CanRate, CanBeRated; }
Explore the feature guides linked above for full APIs and examples.
Compatibility
- Laravel 9–12 (Illuminate components only; no laravel/framework hard dependency)
- PHP >= 8.0
Contributing / Changelog
- Contributing: see CONTRIBUTING.md
- Changes: see CHANGELOG.md