ExtensionInterface.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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(): array;
  31. /**
  32. * Returns combination translators.
  33. *
  34. * @return callable[]
  35. */
  36. public function getCombinationTranslators(): array;
  37. /**
  38. * Returns function translators.
  39. *
  40. * @return callable[]
  41. */
  42. public function getFunctionTranslators(): array;
  43. /**
  44. * Returns pseudo-class translators.
  45. *
  46. * @return callable[]
  47. */
  48. public function getPseudoClassTranslators(): array;
  49. /**
  50. * Returns attribute operation translators.
  51. *
  52. * @return callable[]
  53. */
  54. public function getAttributeMatchingTranslators(): array;
  55. /**
  56. * Returns extension name.
  57. */
  58. public function getName(): string;
  59. }