finagin/laravel-comment

Comments for Laravel 5.4 and up

0.1.0 2017-06-29 13:54 UTC

This package is auto-updated.

Last update: 2024-10-19 00:36:30 UTC


README

Latest Version on Packagist Software License Build Status StyleCI Total Downloads

GitHub stars

Installation

This package can be used in Laravel 5.4 or higher. You can install the package via composer:

composer require finagin/laravel-comment

Now add the service provider in config/app.php file:

'providers' => [
    /*
     * Package Service Providers...
     */
    // ...
    Finagin\Comment\CommentServiceProvider::class,
    // ...
];

You must publish the migration with:

php artisan vendor:publish --provider="Finagin\Comment\CommentServiceProvider" --tag="migrations"

After the migration has been published you must create the settings-tables by running the migrations:

php artisan migrate

Also you can publish the config file with:

php artisan vendor:publish --provider="Finagin\Comment\CommentServiceProvider" --tag="config"

Add CanComment trait to your User model.

use Finagin\Comment\Traits\CanComment;

Add Commentable trait to your commentable model(s).

use Finagin\Comment\Traits\Commentable;

If you want to have your own Comment Model create a new one and extend my Comment model.

class Comment extends Finagin\Comment\Models\Comment
{
  ...
}

Comment package comes with several modes.

  1. If you want to Users can rate your model(s) with comment set canBeRated to true in your Commentable model.
class Post extends Model {
  use Commentable;

  protected $canBeRated = true;

  ...
}
  1. If you want to approve comments for your commentable models, you must set mustBeApproved to true in your Commentable model.
class Post extends Model {
  use Commentable;

  protected $mustBeApproved = true;

  ...
}

Usage

$user = App\User::find(1);
$post = App\Post::find(1);

// CanComment->comment(Commentable|Commnet $commentable, string $commentText): Comment

// Anonimous first level comment
$comment = (new User(['name' => 'Anonymous']))->comment($post, 'Lorem ipsum ..');

// Users sub comment
$user
    ->comment($comment, 'Lorem ipsum ..');

// Anonimous sub comment
(new User(['name' => 'Anonymous']))
    ->comment($comment, 'Lorem ipsum ..');

License

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