TMapFactory.php 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\ObjectManager;
  7. use Magento\Framework\ObjectManagerInterface;
  8. /**
  9. * Class TMapFactory
  10. */
  11. class TMapFactory
  12. {
  13. /**
  14. * @var ObjectManagerInterface
  15. */
  16. private $objectManager;
  17. /**
  18. * TMapFactory constructor.
  19. * @param ObjectManagerInterface $objectManager
  20. */
  21. public function __construct(ObjectManagerInterface $objectManager)
  22. {
  23. $this->objectManager = $objectManager;
  24. }
  25. /**
  26. * @param array $args
  27. * @return TMap
  28. */
  29. public function create(array $args)
  30. {
  31. return $this->objectManager->create(TMap::class, $args);
  32. }
  33. /**
  34. * @param array $args
  35. * @return TMap
  36. */
  37. public function createSharedObjectsMap(array $args)
  38. {
  39. return $this->objectManager->create(
  40. TMap::class,
  41. array_merge(
  42. $args,
  43. [
  44. 'objectCreationStrategy' => function (ObjectManagerInterface $om, $objectName) {
  45. return $om->get($objectName);
  46. }
  47. ]
  48. )
  49. );
  50. }
  51. }