2017 © Pedro Peláez
 

library likeable

image

namest/likeable

  • Sunday, March 1, 2015
  • by luuhoangnam
  • Repository
  • 1 Watchers
  • 0 Stars
  • 4 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 4 Versions
  • 0 % Grown

The README.md

Getting Started

Provide an elegant way to interact with like feature between your eloquent models., (*1)

Note: Package only support Laravel 5, (*2)

Installation

Step 1: Install package, (*3)

composer require namest/likeable

Step 2: Register service provider in your config/app.php, (*4)

return [
    ...
    'providers' => [
        ...
        'Namest\Likeable\LikeableServiceProvider',
    ],
    ...
];

Step 3: Publish package resources, include: configs, migrations. Open your terminal and type:, (*5)

php artisan vendor:publish --provider="Namest\Likeable\LikeableServiceProvider"

Step 4: Migrate the migration that have been published, (*6)

php artisan migrate

Step 5: Use some traits to make awesome things, (*7)

class User extends Model
{
    use \Namest\Likeable\LikerTrait;

    // ...
}

class Post extends Model
{
    use \Namest\Likeable\LikeableTrait;

    // ...
}

Step 6: Read API below and start happy, (*8)

API

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

$like = $user->like($post); // Return Namest\Likeable\Like instance
$result = $user->unlike($post); // Return true when success and false on otherwise
$user = $like->liker; // Return model that like another model
$post = $like->likeable; // Return model that was liked by another model
$posts = $user->likes; // Return likeable collection that liker was liked
$users = $post->likers; // Return liker collection who like that post
$users = User::wasLike($post)->...->get(); // Return liker collection who like that post
$posts = Post::likedBy($user)->...->get(); // Return post collection which was liked by the user 

Events

namest.likeable.liking

When: Before $liker like a likeable, (*9)

Payloads: - $liker: Who do this action - $likeable: Which will be liked, (*10)

Usage:, (*11)

\Event::listen('namest.likeable.liking', function ($liker, $likeable) {
    // Do something
});

namest.likeable.liked

When: After $liker was like a likeable, (*12)

Payloads: - $liker: Who do this action - $likeable: Which was liked - $like: Like instance, (*13)

Usage:, (*14)

\Event::listen('namest.likeable.liked', function ($liker, $likeable, $like) {
    // Do something
});

namest.likeable.unliking

When: Before $liker unlike a likeable, (*15)

Payloads: - $liker: Who do this action - $likeable: Which will be unliked, (*16)

Usage:, (*17)

\Event::listen('namest.likeable.unliking', function ($liker, $likeable) {
    // Do something
});

namest.likeable.unliked

When: After $liker was unlike a likeable, (*18)

Payloads: - $liker: Who do this action - $likeable: Which was unliked, (*19)

Usage:, (*20)

\Event::listen('namest.likeable.unliked', function ($liker, $likeable) {
    // Do something
});

The Versions