/administrator/components/com_widgetkit/vendor/yootheme/framework/src/View/Asset/Filter/FilterManager.php

https://gitlab.com/vnsoftdev/amms · PHP · 76 lines · 36 code · 13 blank · 27 comment · 2 complexity · dee26d7111986c9aff3cc9701eae4591 MD5 · raw file

  1. <?php
  2. namespace YOOtheme\Framework\View\Asset\Filter;
  3. class FilterManager
  4. {
  5. /**
  6. * @var array
  7. */
  8. protected $filters = array();
  9. /**
  10. * Constructor.
  11. *
  12. * @param array $filters
  13. */
  14. public function __construct(array $filters = array())
  15. {
  16. foreach ($filters as $name => $filter) {
  17. $this->add($name, $filter);
  18. }
  19. }
  20. /**
  21. * Gets one or multiple filters.
  22. *
  23. * @param string|array $name
  24. * @return FilterInterface|FilterInterface[]
  25. */
  26. public function get($name)
  27. {
  28. if (is_array($name)) {
  29. $filters = array_flip($name);
  30. foreach ($filters as $name => $i) {
  31. $filters[$name] = $this->filters[$name];
  32. }
  33. return $filters;
  34. }
  35. return isset($this->filters[$name]) ? $this->filters[$name] : null;
  36. }
  37. /**
  38. * Adds a named filter.
  39. *
  40. * @param string $name
  41. * @param mixed $filter
  42. * @return self
  43. */
  44. public function add($name, $filter)
  45. {
  46. if (is_string($filter)) {
  47. $filter = new $filter;
  48. }
  49. $this->filters[$name] = $filter;
  50. return $this;
  51. }
  52. /**
  53. * Removes a named filter.
  54. *
  55. * @param string $name
  56. * @return self
  57. */
  58. public function remove($name)
  59. {
  60. unset($this->filters[$name]);
  61. return $this;
  62. }
  63. }