TestExtension.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <?php
  2. namespace Symfony\Tests\Component\Form\Fixtures;
  3. use Symfony\Component\Form\FormTypeInterface;
  4. use Symfony\Component\Form\FormTypeExtensionInterface;
  5. use Symfony\Component\Form\FormTypeGuesserInterface;
  6. use Symfony\Component\Form\FormExtensionInterface;
  7. class TestExtension implements FormExtensionInterface
  8. {
  9. private $types = array();
  10. private $extensions = array();
  11. private $guesser;
  12. public function __construct(FormTypeGuesserInterface $guesser)
  13. {
  14. $this->guesser = $guesser;
  15. }
  16. public function addType(FormTypeInterface $type)
  17. {
  18. $this->types[$type->getName()] = $type;
  19. }
  20. public function getType($name)
  21. {
  22. return isset($this->types[$name]) ? $this->types[$name] : null;
  23. }
  24. public function hasType($name)
  25. {
  26. return isset($this->types[$name]);
  27. }
  28. public function addTypeExtension(FormTypeExtensionInterface $extension)
  29. {
  30. $type = $extension->getExtendedType();
  31. if (!isset($this->extensions[$type])) {
  32. $this->extensions[$type] = array();
  33. }
  34. $this->extensions[$type][] = $extension;
  35. }
  36. public function getTypeExtensions($name)
  37. {
  38. return isset($this->extensions[$name]) ? $this->extensions[$name] : array();
  39. }
  40. public function hasTypeExtensions($name)
  41. {
  42. return isset($this->extensions[$name]);
  43. }
  44. public function getTypeGuesser()
  45. {
  46. return $this->guesser;
  47. }
  48. }