Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
13 / 13
100.00% covered (success)
100.00%
2 / 2
CRAP
100.00% covered (success)
100.00%
1 / 1
ComposerInstalled
100.00% covered (success)
100.00%
13 / 13
100.00% covered (success)
100.00%
2 / 2
3
100.00% covered (success)
100.00%
1 / 1
 __construct
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getInstalledDependencies
100.00% covered (success)
100.00%
12 / 12
100.00% covered (success)
100.00%
1 / 1
2
1<?php
2
3namespace Wikimedia\Composer;
4
5/**
6 * Reads an installed.json file and provides accessors to get what is
7 * installed
8 *
9 * @since 1.27
10 */
11class ComposerInstalled {
12    /**
13     * @var array[]
14     */
15    private $contents;
16
17    /**
18     * @param string $location
19     */
20    public function __construct( $location ) {
21        $this->contents = json_decode( file_get_contents( $location ), true );
22    }
23
24    /**
25     * Dependencies currently installed according to installed.json
26     *
27     * @return array[]
28     */
29    public function getInstalledDependencies() {
30        $contents = $this->contents['packages'];
31
32        $deps = [];
33        foreach ( $contents as $installed ) {
34            $deps[$installed['name']] = [
35                'version' => ComposerJson::normalizeVersion( $installed['version'] ),
36                'type' => $installed['type'],
37                'licenses' => $installed['license'] ?? [],
38                'authors' => $installed['authors'] ?? [],
39                'description' => $installed['description'] ?? '',
40            ];
41        }
42
43        ksort( $deps );
44        return $deps;
45    }
46}