Lib.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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\Deploy\Package\Package;
  8. use Magento\Framework\App\Utility\Files;
  9. use Magento\Framework\Filesystem;
  10. use Magento\Framework\App\Filesystem\DirectoryList;
  11. use Magento\Deploy\Package\PackageFileFactory;
  12. /**
  13. * Collect files eligible for deployment from library
  14. *
  15. * Provides files collected from web library
  16. */
  17. class Lib implements SourceInterface
  18. {
  19. const TYPE = 'lib';
  20. /**
  21. * @var Files
  22. */
  23. private $filesUtil;
  24. /**
  25. * @var Filesystem\Directory\WriteInterface
  26. */
  27. private $libDir;
  28. /**
  29. * @var PackageFileFactory
  30. */
  31. private $packageFileFactory;
  32. /**
  33. * Lib constructor
  34. *
  35. * @param Files $filesUtil
  36. * @param Filesystem $filesystem
  37. * @param PackageFileFactory $packageFileFactory
  38. */
  39. public function __construct(
  40. Files $filesUtil,
  41. Filesystem $filesystem,
  42. PackageFileFactory $packageFileFactory
  43. ) {
  44. $this->filesUtil = $filesUtil;
  45. $this->libDir = $filesystem->getDirectoryWrite(DirectoryList::LIB_WEB);
  46. $this->packageFileFactory = $packageFileFactory;
  47. }
  48. /**
  49. * @inheritdoc
  50. */
  51. public function get()
  52. {
  53. $files = [];
  54. foreach ($this->filesUtil->getStaticLibraryFiles() as $fileName) {
  55. if (strpos($fileName, 'css/docs') === 0) {
  56. continue;
  57. }
  58. $fullPath = $this->libDir->getAbsolutePath($fileName);
  59. $params = [
  60. 'area' => Package::BASE_AREA,
  61. 'theme' => null,
  62. 'locale' => null,
  63. 'module' => null,
  64. 'fileName' => $fileName,
  65. 'sourcePath' => $fullPath
  66. ];
  67. $files[] = $this->packageFileFactory->create($params);
  68. }
  69. return $files;
  70. }
  71. }