Base.php 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <?php
  2. /**
  3. * Abstract configuration class
  4. * Used to retrieve core configuration values
  5. *
  6. * Copyright © Magento, Inc. All rights reserved.
  7. * See COPYING.txt for license details.
  8. */
  9. namespace Magento\Framework\App\Config;
  10. class Base extends \Magento\Framework\Simplexml\Config
  11. {
  12. /**
  13. * List of instances
  14. *
  15. * @var Base[]
  16. */
  17. public static $instances = [];
  18. /**
  19. * @param \Magento\Framework\Simplexml\Element|string $sourceData $sourceData
  20. */
  21. public function __construct($sourceData = null)
  22. {
  23. $this->_elementClass = \Magento\Framework\App\Config\Element::class;
  24. parent::__construct($sourceData);
  25. self::$instances[] = $this;
  26. }
  27. /**
  28. * Cleanup objects because of simplexml memory leak
  29. *
  30. * @return void
  31. */
  32. public static function destroy()
  33. {
  34. if (is_array(self::$instances)) {
  35. foreach (self::$instances as $instance) {
  36. $instance->_xml = null;
  37. }
  38. }
  39. self::$instances = [];
  40. }
  41. }