RequirementsLoader.php 942 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <?php
  2. namespace Fgm\ComposerCheck;
  3. /**
  4. * Class RequirementsLoader loads a composer.json file.
  5. */
  6. class RequirementsLoader implements LoaderInterface {
  7. protected $dev = [];
  8. protected $run = [];
  9. /**
  10. * {@inheritdoc}
  11. */
  12. public function __construct(string $directory) {
  13. $this->file = realpath("${directory}/composer.json");
  14. }
  15. /**
  16. * Return the --dev requirements.
  17. *
  18. * @return array
  19. * A requirements array, keyed by requirement string.
  20. */
  21. public function getDev() {
  22. return $this->dev;
  23. }
  24. /**
  25. * Return the non- --dev requirements.
  26. *
  27. * @return array
  28. * A requirements array, keyed by requirement string.
  29. */
  30. public function getRun() {
  31. return $this->run;
  32. }
  33. /**
  34. * {@inheritdoc}
  35. */
  36. public function load() {
  37. $json = json_decode(file_get_contents($this->file), TRUE);
  38. $this->run = $json['require'] ?? [];
  39. $this->dev = $json['require-dev'] ?? [];
  40. }
  41. }