During the sprint and after talking to some mates, you realize that using a NoSQL strategy could improve the performance of your feature. Redis is one of your best friends. Go for it and show me your Listing 4:
class IdeaController extends Zend_Controller_Action
{
public function rateAction()
{
$ideaId = $this->request->getParam('id');
$rating = $this->request->getParam('rating');
$ideaRepository = new RedisIdeaRepository();
$idea = $ideaRepository->find($ideaId);
if (!$idea) {
throw new Exception('Idea does not exist');
}
$idea->addRating($rating);
$ideaRepository->update($idea);
$this->redirect('/idea/' . $ideaId);
}
}
interface IdeaRepository
{
// ...
}
class RedisIdeaRepository implements IdeaRepository
{
private $client;
public...