A light bundle for implementing user rating in a Symfony application.
In the console use the command
composer require tigralt/ezratingbundle
Or in your composer.json
add the requirement
"require": {
"tigralt/ezratingbundle": "dev-master"
}
Then register the bundle in your AppKernel
public function registerBundles()
{
...
$bundles = array(
...
new Tigralt\EZRatingBundle\EZRatingBundle(),
);
...
return $bundles;
}
The rating architecture is divided in two objects:
- The rating thread
- The user rating
A rating thread is a type of rating. For example: An user is rated on his activity, then a rating thread named "Activity" will be created to contain all rating about "Activity". A user rating is the rating from an user.
Rating thread:
- Name
- Associated ratings
Rating:
- UserID
- Rating
- Comment
- Metadata
The metadata in the rating is an array that can support any type of data.
In order to use the rating bundle, you have to call the rating manager in your controller
$rating_manager = $this->get("ezrating.manager");
$rating_manager->addRatingThread("TheRatingThreadName");
$rating_manager->addRating($thread_id, $user_id, $rating_number, "This is a comment", array("meta" => "data"));
$ratings = $rating_manager->getAllFromUser($user_id);
$rating_threads = $rating_manager->getAllRatingThreads();