Themes.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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 themes
  11. */
  12. class Themes implements SourceInterface
  13. {
  14. /**
  15. * Source type code
  16. */
  17. const TYPE = 'themes';
  18. /**
  19. * @var Files
  20. */
  21. private $filesUtil;
  22. /**
  23. * @var PackageFileFactory
  24. */
  25. private $packageFileFactory;
  26. /**
  27. * Themes constructor
  28. *
  29. * @param Files $filesUtil
  30. * @param PackageFileFactory $packageFileFactory
  31. */
  32. public function __construct(
  33. Files $filesUtil,
  34. PackageFileFactory $packageFileFactory
  35. ) {
  36. $this->filesUtil = $filesUtil;
  37. $this->packageFileFactory = $packageFileFactory;
  38. }
  39. /**
  40. * @inheritdoc
  41. */
  42. public function get()
  43. {
  44. $files = [];
  45. foreach ($this->filesUtil->getStaticPreProcessingFiles() as $info) {
  46. list($area, $theme, $locale, $module, $fileName, $fullPath) = $info;
  47. if (!empty($theme)) {
  48. $locale = $locale ?: null;
  49. $params = [
  50. 'area' => $area,
  51. 'theme' => $theme,
  52. 'locale' => $locale,
  53. 'module' => $module,
  54. 'fileName' => $fileName,
  55. 'sourcePath' => $fullPath
  56. ];
  57. $files[] = $this->packageFileFactory->create($params);
  58. }
  59. }
  60. return $files;
  61. }
  62. }