ExtensionInterface.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?php
  2. /*
  3. * This file is part of the Symfony package.
  4. *
  5. * (c) Fabien Potencier <fabien@symfony.com>
  6. *
  7. * For the full copyright and license information, please view the LICENSE
  8. * file that was distributed with this source code.
  9. */
  10. namespace Symfony\Component\CssSelector\XPath\Extension;
  11. /**
  12. * XPath expression translator extension interface.
  13. *
  14. * This component is a port of the Python cssselect library,
  15. * which is copyright Ian Bicking, @see https://github.com/SimonSapin/cssselect.
  16. *
  17. * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
  18. *
  19. * @internal
  20. */
  21. interface ExtensionInterface
  22. {
  23. /**
  24. * Returns node translators.
  25. *
  26. * These callables will receive the node as first argument and the translator as second argument.
  27. *
  28. * @return callable[]
  29. */
  30. public function getNodeTranslators();
  31. /**
  32. * Returns combination translators.
  33. *
  34. * @return callable[]
  35. */
  36. public function getCombinationTranslators();
  37. /**
  38. * Returns function translators.
  39. *
  40. * @return callable[]
  41. */
  42. public function getFunctionTranslators();
  43. /**
  44. * Returns pseudo-class translators.
  45. *
  46. * @return callable[]
  47. */
  48. public function getPseudoClassTranslators();
  49. /**
  50. * Returns attribute operation translators.
  51. *
  52. * @return callable[]
  53. */
  54. public function getAttributeMatchingTranslators();
  55. /**
  56. * Returns extension name.
  57. *
  58. * @return string
  59. */
  60. public function getName();
  61. }