AttributeHandler.php 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\Indexer\Handler;
  7. use Magento\Framework\App\ResourceConnection\SourceProviderInterface;
  8. use Magento\Framework\Indexer\HandlerInterface;
  9. class AttributeHandler implements HandlerInterface
  10. {
  11. /**
  12. * Prepare SQL for field and add it to collection
  13. *
  14. * @param SourceProviderInterface $source
  15. * @param string $alias
  16. * @param array $fieldInfo
  17. * @return void
  18. *
  19. * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  20. */
  21. public function prepareSql(SourceProviderInterface $source, $alias, $fieldInfo)
  22. {
  23. if (isset($fieldInfo['bind'])) {
  24. if (!method_exists($source, 'joinAttribute')) {
  25. return;
  26. }
  27. $source->joinAttribute(
  28. $fieldInfo['name'],
  29. $fieldInfo['entity'] . '/' . $fieldInfo['origin'],
  30. $fieldInfo['bind'],
  31. null,
  32. 'left'
  33. );
  34. } else {
  35. $source->addFieldToSelect($fieldInfo['origin'], 'left');
  36. }
  37. }
  38. }