pianosolo / counter-bundle
Counter Bundle of Symfony
Installs: 26
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
Type:symfony-bundle
Requires
- php: >=5.4.0
- doctrine/orm: ^2.3
Requires (Dev)
- phpunit/phpunit: ~4.0
This package is not auto-updated.
Last update: 2024-11-09 19:51:10 UTC
README
Symfony bundle helps to easily add a counter to entities. Using CounterTrait
in entities will create a Counter entity
relation automatically. Then you can easily add clicks to the counter. You can also add fake counts to your entites by keeping the real count.
Installation
1-) Tell composer to download by running the command:
composer require pianosolo/counter-bundle
2-) Add the bundle to AppKernel
<?php // app/AppKernel.php public function registerBundles() { $bundles = array( // ... new PianoSolo\CounterBundle\PianoSoloCounterBundle(), ); }
Usage
1-) Add CounterTrait
to your entity.
<?php namespace MyBundle\Entity; use PianoSolo\Traits\CounterTrait; class MyEntity { use CounterTrait; //... }
2-) EventListener will create a new Counter
for your entity while persisting your entity.
$myEntity = new MyEntity(); $entityManager->persist($myEntity); $entityManager->flush();
3-) Call Counter and add clicks.
<?php namespace MyBundle\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller; class DefaultController extends Controller { public function showEntityAction() { //... $myEntity = $myEntityRepository->findOneBy(array('id' => $id)); $myEntity->getCounter()->addClick(5); // Default value of parameter is 1 $entityManager->persist($myEntity); $entityManager->flush(); } }
4-) Get Count
$count = $myEntity->getCounter()->getCount();
{{ myEntity.counter.count }}
Adding Fake Count
You can add fake counts to your entities and keep the real counts. Whenever you want you can delete this fake counts.
// Example initial count values of entity $count = $myEntity->getCounter()->getCount(); // return 10 $realCount = $myEntity->getCounter()->getRealCount(); // return 10 // Adding fake count $myEntity->getCounter()->setCorrectionCount(100); $entityManager->persist($myEntity); $entityManager->flush(); // Keeping real count $count = $myEntity->getCounter()->getCount(); // return 110 $realCount = $myEntity->getCounter()->getRealCount(); // return 10 // Delete fake count $myEntity->getCounter()->setCorrectionCount(0): $entityManager->persist($myEntity); $entityManager->flush();