Modules.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Deploy\Source;
  7. use Magento\Framework\App\Utility\Files;
  8. use Magento\Deploy\Package\PackageFileFactory;
  9. /**
  10. * Collect files eligible for deployment from modules
  11. */
  12. class Modules implements SourceInterface
  13. {
  14. const TYPE = 'modules';
  15. /**
  16. * @var Files
  17. */
  18. private $filesUtil;
  19. /**
  20. * @var PackageFileFactory
  21. */
  22. private $packageFileFactory;
  23. /**
  24. * Modules constructor
  25. *
  26. * @param Files $filesUtil
  27. * @param PackageFileFactory $packageFileFactory
  28. */
  29. public function __construct(
  30. Files $filesUtil,
  31. PackageFileFactory $packageFileFactory
  32. ) {
  33. $this->filesUtil = $filesUtil;
  34. $this->packageFileFactory = $packageFileFactory;
  35. }
  36. /**
  37. * @inheritdoc
  38. */
  39. public function get()
  40. {
  41. $files = [];
  42. foreach ($this->filesUtil->getStaticPreProcessingFiles() as $info) {
  43. list($area, $theme, $locale, $module, $fileName, $fullPath) = $info;
  44. if (!empty($module) && empty($theme)) {
  45. $locale = $locale ?: null;
  46. $params = [
  47. 'area' => $area,
  48. 'theme' => null,
  49. 'locale' => $locale,
  50. 'module' => $module,
  51. 'fileName' => $fileName,
  52. 'sourcePath' => $fullPath
  53. ];
  54. $files[] = $this->packageFileFactory->create($params);
  55. }
  56. }
  57. return $files;
  58. }
  59. }