ultratechinnovations/laravel-social-follow

A complete, flexible follow system for Laravel applications with multi-model support, real-time notifications, and relationship management

Fund package maintenance!
UltraTechInnovations

Installs: 1

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 2

pkg:composer/ultratechinnovations/laravel-social-follow

0.0.1 2025-08-04 19:42 UTC

README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

A complete, flexible follow system for Laravel applications with multi-model support, real-time notifications, and relationship management

Installation

You can install the package via composer:

composer require ultratechinnovations/laravel-social-follow

You can publish and run the migrations with:

php artisan vendor:publish --tag="social-follow-migrations"
php artisan migrate

You can publish the config file with:

php artisan vendor:publish --tag="social-follow-config"

Usage

Traits

CanFollow

Add to any model (e.g., User) that should be able to follow others.

<?php

use Illuminate\Foundation\Auth\User as Authenticatable;
use UltraTechInnovations\SocialFollow\Traits\CanFollow;

class User extends Authenticatable{
    use CanFollow;
}

// Usages
$user->follow($otherUser);
$user->unfollow($otherUser);
$user->toggleFollow($otherUser);
$user->isFollowing($otherUser);
$user->getFollowings();
$user->followingCount();

// If approval_required is true
$user->hasRequestedToFollow($otherUser); 
$otherUser->acceptFollowRequest($user);

CanBeFollowed

Add to any model that can be followed.

<?php

use Illuminate\Foundation\Auth\User as Authenticatable;
use UltraTechInnovations\SocialFollow\Traits\CanBeFollowed;

class User extends Authenticatable{
    use CanBeFollowed;
}

// Usage
$user->isFollowedBy($otherUser);
$user->getFollowers();
$user->pendingFollowers(); // If approval_required is true

CanBlock

Add to any model that should be able to block others.

<?php

use Illuminate\Foundation\Auth\User as Authenticatable;
use UltraTechInnovations\SocialFollow\Traits\CanBlock;

class User extends Authenticatable{
    use CanBlock;
}

// Usage
$user->block($otherUser);
$user->unblock($otherUser);
$user->hasBlocked($otherUser);

CanBeBlocked

Add to any model that can be blocked.

<?php

use Illuminate\Foundation\Auth\User as Authenticatable;
use UltraTechInnovations\SocialFollow\Traits\CanBeBlocked;

class User extends Authenticatable{
    use CanBeBlocked;
}

// Usage
$user->isBlockedBy($otherUser);

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

License

The MIT License (MIT). Please see License File for more information.