Remove.php 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\Composer;
  7. use Magento\Composer\MagentoComposerApplication;
  8. /**
  9. * Class to run composer remove command
  10. */
  11. class Remove
  12. {
  13. /**
  14. * Composer application factory
  15. *
  16. * @var MagentoComposerApplicationFactory
  17. */
  18. private $composerApplicationFactory;
  19. /**
  20. * Constructor
  21. *
  22. * @param MagentoComposerApplicationFactory $composerApplicationFactory
  23. */
  24. public function __construct(
  25. MagentoComposerApplicationFactory $composerApplicationFactory
  26. ) {
  27. $this->composerApplicationFactory = $composerApplicationFactory;
  28. }
  29. /**
  30. * Run 'composer remove'
  31. *
  32. * @param array $packages
  33. * @throws \Exception
  34. *
  35. * @return string
  36. */
  37. public function remove(array $packages)
  38. {
  39. $composerApplication = $this->composerApplicationFactory->create();
  40. return $composerApplication->runComposerCommand(
  41. [
  42. 'command' => 'remove',
  43. 'packages' => $packages,
  44. '--no-update-with-dependencies' => true,
  45. ]
  46. );
  47. }
  48. }