phpdominicana / reactify
Reactify a easy way to add likes to comment, photos, etc.
v1.4.0
2025-06-27 16:51 UTC
Requires
- php: ^8.2
- illuminate/support: ^12.0
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- larastan/larastan: ^3.5
- laravel/pint: ^1.14
- nunomaduro/collision: ^8.1.1||^7.10.0
- orchestra/testbench: ^10.4
- pestphp/pest: ^3.8
- spatie/laravel-ray: ^1.35
README
Add reactions (like 👍, dislike 👎, love ❤️, haha 😄, etc.) to any Eloquent model in Laravel. Perfect for blogs, comments, posts, reviews, and more.
Installation
You can install the package via composer:
composer require phpdominicana/reactify
You can publish and run the migrations with:
php artisan vendor:publish --tag="reactify-migrations"
php artisan migrate
You can publish the config file with:
php artisan vendor:publish --tag="reactify-config"
Usage
Add the trait to the model you want to add reactions.
use App\Traits\HasReactions; class Post extends Model { use HasReactions; }
Sample usage
$post->react($userId, Reaction::LIKE); $post->unReact($userId, Reaction::LIKE); $post->reactions(Reaction::LIKE); // returns integer count
Get total reactions for all types
$post->reactionCounter; // returns a ReactionCounter model with all counts
Available Reaction Types
You can define your own reactions via constants:
enum Reaction: string { case LIKE = 'like'; case DISLIKE = 'dislike'; case LOVE = 'love'; case ANGRY = 'angry'; case SAD = 'sad'; case HAPPY = 'happy'; case WOW = 'wow'; case CARE = 'care'; case THANKFUL = 'thankful'; case SUPPORT = 'support'; case LAUGH = 'laugh'; case CONFUSED = 'confused'; case HUG = 'hug'; case KISS = 'kiss'; case SMILE = 'smile'; case HEART = 'heart'; case STAR = 'star'; case THUMBS_UP = 'thumbs_up'; case THUMBS_DOWN = 'thumbs_down'; case CLAP = 'clap'; case BRAVO = 'bravo'; case CELEBRATE = 'celebrate'; case EYES = 'eyes'; case HANDSHAKE = 'handshake'; case PRAY = 'pray'; case SALUTE = 'salute'; case TROPHY = 'trophy'; case WELCOME = 'welcome'; case WINK = 'wink'; case YUMMY = 'yummy'; case COOL = 'cool'; case DROOL = 'drool'; case FLOWER = 'flower'; case GIFT = 'gift'; case GOOD = 'good'; case HIGH_FIVE = 'high_five'; case HUGS = 'hugs'; case KISSES = 'kisses'; case LOVE_YOU = 'love_you'; case MISS_YOU = 'miss_you'; case NO = 'no'; case OK = 'ok'; case OK_HAND = 'ok_hand'; case PARTY = 'party'; case PEACE = 'peace'; case PIZZA = 'pizza'; case PRIDE = 'pride'; case QUESTION = 'question'; case RAINBOW = 'rainbow'; case ROCKET = 'rocket'; case SICK = 'sick'; case SORRY = 'sorry'; case SPARKLES = 'sparkles'; case STRONG = 'strong'; case SUN = 'sun'; case THANK_YOU = 'thank_you'; case THINKING = 'thinking'; }
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.