mhndev / rate
多用途评分系统(支持点赞、踩、用其他数字或文本评分)
1.0.10
2017-10-09 10:29 UTC
Requires
- php: >=5.4.0
Requires (Dev)
- mikey179/vfsstream: 1.6.*
- phpunit/phpunit: 6.*
README
支持
1) 点赞
2) 点赞(+1)、踩(-1)
3) 用其他数字评分(例如 0 < 评分 <= 5 )
4) 用字符串评分(例如 '好'、'非常好'、...)
示例用法
use mhndev\rate\Abstracts\Entity; use mhndev\rate\DiscreteNumberValue; use mhndev\rate\Interfaces\iRateableEntity; class User { use \mhndev\rate\Traits\UserTrait; /** * @param $value * @param iRateableEntity $entity * @param $type */ function doRate($value, iRateableEntity $entity, $type) { echo 'rate is done in our storage system.'; } } //you can either extend your entity from AbstractEntity class class Post extends Entity { } //or use EntityTrait in your Entity class Post implements iRateableEntity { use \mhndev\rate\Traits\EntityTrait; } class Comment extends Entity { } //or use EntityTrait in your Entity class Comment implements iRateableEntity { use \mhndev\rate\Traits\EntityTrait; } $rateValue = (new DiscreteNumberValue())->setPossibleValues([1,2,3]); $post = (new Post())->setRateValue($rateValue); //or Post::setRateValue($rateValue); $post->setPossibleRateTypes(['like', 'rate']); $rateValue = (new DiscreteNumberValue())->setPossibleValues([-1,1]); $comment = (new Comment())->setRateValue($rateValue); //or Comment::setRateValue($rateValue); // by default possible rate types are "rate" and "like" so if you want your rate types to be just like default you don't need to call setPossibleRateTypes method on entity pbject $post->setPossibleRateTypes(['like', 'rate', 'test']); //or Post::setPossibleRateTypes(['like', 'rate', 'test']); $user = new User; $user->rate(3, $post); $user->like($post); $user->rate(1,$comment); $user->dislike($comment);