Neos\Flow\Composer\ComposerUtility::readComposerLock PHP Method

readComposerLock() public static method

Read the content of the composer.lock
public static readComposerLock ( ) : array
return array
    public static function readComposerLock()
    {
        if (self::$composerLockCache !== null) {
            return self::$composerLockCache;
        }
        if (!file_exists(FLOW_PATH_ROOT . 'composer.lock')) {
            return [];
        }
        $json = file_get_contents(FLOW_PATH_ROOT . 'composer.lock');
        $composerLock = json_decode($json, true);
        $composerPackageVersions = isset($composerLock['packages']) ? $composerLock['packages'] : [];
        $composerPackageDevVersions = isset($composerLock['packages-dev']) ? $composerLock['packages-dev'] : [];
        self::$composerLockCache = array_merge($composerPackageVersions, $composerPackageDevVersions);
        return self::$composerLockCache;
    }

Usage Example

 /**
  * Get the package version of the given package
  * Return normalized package version.
  *
  * @param string $composerName
  * @return string
  * @see https://getcomposer.org/doc/04-schema.md#version
  */
 public static function getPackageVersion($composerName)
 {
     foreach (ComposerUtility::readComposerLock() as $composerLockData) {
         if (!isset($composerLockData['name'])) {
             continue;
         }
         if ($composerLockData['name'] === $composerName) {
             return preg_replace('/^v([0-9])/', '$1', $composerLockData['version'], 1);
         }
     }
     return '';
 }