• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

taobig / php-helper / 10330426697

10 Aug 2024 08:58AM UTC coverage: 91.718% (-0.1%) from 91.853%
10330426697

push

github

taobig
remove @deprecated methods & constants:
1. taobig\helpers\composer\Version::PACKAGE_PROD(use Version::PACKAGE instead)
2. taobig\helpers\StringHelper::leftPadding() (use StringHelper::prepend() instead)
3. taobig\helpers\ArrayHelper::groupBy() (use groupByColumn() instead)
4. taobig\helpers\ArrayHelper::removeEmptyElement() (use removeEmpty() instead)
5. taobig\helpers\ArrayHelper::removeSpecifiedElement() (use removeSpecified() instead)
6. taobig\helpers\lock\Lock::name() (use getName() instead)
7. taobig\helpers\RandomHelper::getRandomEnglishCharacters() (use str() instead)

443 of 483 relevant lines covered (91.72%)

1.28 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

95.83
/src/composer/Version.php
1
<?php
2

3

4
namespace taobig\helpers\composer;
5

6

7
class Version
8
{
9

10
    public const PACKAGE_ALL = 'package_all';
11
    public const PACKAGE_DEV = 'package_dev';
12
    public const PACKAGE = 'package';
13

14
    /**
15
     * @param string $composerLockFile
16
     * @param string $packageName
17
     * @param string $floorVersion eg. "1.2.3", NOT "v1.2.3"
18
     * @param string $packageMode 'all':package and package-dev; 'package'; 'package-dev'
19
     * @return bool
20
     */
21
    public static function checkLocalInstalledVersion(string $composerLockFile, string $packageName, string $floorVersion, string $packageMode = self::PACKAGE): bool
22
    {
23
        $localInstalledVersion = null;
1✔
24
        $composerLockFileContent = file_get_contents($composerLockFile);
1✔
25
        $arr = json_decode($composerLockFileContent, true);
1✔
26
        if (($arr !== false)) {
1✔
27
            if ($packageMode == self::PACKAGE_ALL) {
1✔
28
                $packageList = array_merge($arr['packages'] ?? [], $arr['packages-dev'] ?? []);
1✔
29
                $packageMap = array_column($packageList, NUll, 'name');
1✔
30
                if (isset($packageMap[$packageName])) {
1✔
31
                    $localInstalledVersion = $packageMap[$packageName]['version'];
1✔
32
                }
33
            } else if ($packageMode == self::PACKAGE_DEV) {
1✔
34
                if (isset($arr['packages-dev']) && is_array($arr['packages-dev'])) {
1✔
35
                    $packageMap = array_column($arr['packages-dev'], NUll, 'name');
1✔
36
                    if (isset($packageMap[$packageName])) {
1✔
37
                        $localInstalledVersion = $packageMap[$packageName]['version'];
1✔
38
                    }
39
                }
40
            } else if ($packageMode == self::PACKAGE) {
1✔
41
                if (isset($arr['packages']) && is_array($arr['packages'])) {
1✔
42
                    $packageMap = array_column($arr['packages'], NUll, 'name');
1✔
43
                    if (isset($packageMap[$packageName])) {
1✔
44
                        $localInstalledVersion = $packageMap[$packageName]['version'];
1✔
45
                    }
46
                }
47
            } else {
48
                return false;
×
49
            }
50
        }
51
        if ($localInstalledVersion) {
1✔
52
            $localInstalledVersion = ltrim($localInstalledVersion, 'v');// remove prefix 'v' if exists, "v1.2.3" => "1.2.3"
1✔
53
            return version_compare($localInstalledVersion, $floorVersion, '>=');
1✔
54
        }
55
        return false;
1✔
56
    }
57

58
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc