WorkerCollection.php 950 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. namespace Mmoreramerino\GearmanBundle\Module;
  3. use Mmoreramerino\GearmanBundle\Module\WorkerClass as Worker;
  4. /**
  5. * WorkerCollection class
  6. *
  7. * @author Marc Morera <marc@ulabox.com>
  8. */
  9. class WorkerCollection
  10. {
  11. /**
  12. * All Workers
  13. *
  14. * @var array
  15. */
  16. private $workerClasses = array();
  17. /**
  18. * Adds a Worker into $workerClasses
  19. * Return self object
  20. *
  21. * @param Worker $workerClass
  22. * @return WorkerCollection
  23. */
  24. public function add(Worker $workerClass)
  25. {
  26. $this->workerClasses[] = $workerClass;
  27. return $this;
  28. }
  29. /**
  30. * Retrieve all workers loaded previously in cache format
  31. *
  32. * @return array
  33. */
  34. public function __toCache()
  35. {
  36. $workersDumped = array();
  37. foreach ($this->workerClasses as $worker) {
  38. $workersDumped[] = $worker->__toCache();
  39. }
  40. return $workersDumped;
  41. }
  42. }