Git Product home page Git Product logo

laravel-comments's Introduction

Laravel Commenting system

Persistant, application-wide commenting system for Laravel.

Installation

  1. composer require jafaripur/laravel-comment
  2. Add jafaripur\LaravelComments\ServiceProvider to the array of providers in config/app.php.
  3. Publish the config file by running php artisan vendor:publish . The config file will give you control over which storage engine to use as well as some storage-specific comments.
  4. Optional: add 'Comments' => 'jafaripur\LaravelComments\Facade' to the array of aliases in config/app.php.

Usage

You can either access the comments store via its facade or inject it by type-hinting towards the abstract class jafaripur\LaravelComments\CommentStore.

The read function Closure give field list which want to add to query condition.

<?php
Comment::read(function($fields) use ($item){
    $fields->namespace = $item['namespace'];
    $fields->threadId = $item['thread_id'];
    $fields->parentId = $item['parent_id'];
    $fields->approved = $item['approved'];
    $fields->userId = $item['user_id'];
});
Comment::save(function($fields) use ($item){
    $fields->namespace = $item['namespace'];
    $fields->threadId = $item['thread_id'];
    $fields->content = $item['content'];
    $fields->parentId = $item['parent_id'];
    $fields->approved = $item['approved'];
    $fields->userId = $item['user_id'];
});
Comment::delete($id);
Comment::approve($id);
Comment::unapprove($id);
?>

Database storage

Using Migration File

If you use the database store you need to run php artisan migrate --path=vendor/jafaripur/laravel-comment/src/migrations to generate the table.

Example

If you need more fine-tuned control over which data gets queried, you can use the setConstraint method which takes a closure with two arguments:

  • $query is the query builder instance
  • $insert is a boolean telling you whether the query is an insert or not. If it is an insert, you usually don't need to do anything to $query.
<?php
Comment::setConstraint(function($query, $insert) {
    if ($insert) return;
    $query->where(/* ... */);
});
?>

Custom stores

This package uses the Laravel Manager class under the hood, so it's easy to add your own custom session store driver if you want to store in some other way. All you need to do is extend the abstract CommentStore class, implement the abstract methods and call Comment::extend.

<?php
class MyStore extends jafaripur\LaravelComments\CommentStore {
    // ...
}
Comment::extend('mystore', function($app) {
    return $app->make('MyStore');
});
?>

Contact

Open an issue or request pull on GitHub if you have any problems or suggestions.

laravel-comments's People

Contributors

jafaripur avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

mstaples

laravel-comments's Issues

Installation fail

Composer error:
[InvalidArgumentException]
Could not find package jafaripur/laravel-comment at any version for your minimum-stability (stable). Check the package spelling or y
our minimum-stability

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.