function LockFileValidator::storeHash

Stores the XXH64 hash of the active lock file.

We store the hash of the lock file itself, rather than its content-hash value, which is actually a hash of certain parts of composer.json. Our aim is to verify that the actual installed packages have not changed unexpectedly; we don't care about the contents of composer.json.

Parameters

\Drupal\package_manager\Event\PreCreateEvent $event: The event being handled.

File

core/modules/package_manager/src/Validator/LockFileValidator.php, line 90

Class

LockFileValidator
Checks that the active lock file is unchanged during stage operations.

Namespace

Drupal\package_manager\Validator

Code

public function storeHash(PreCreateEvent $event) : void {
    $active_lock_file_path = $this->pathLocator
        ->getProjectRoot() . DIRECTORY_SEPARATOR . 'composer.lock';
    $hash = $this->getHash($active_lock_file_path);
    if ($hash) {
        $this->keyValue
            ->set(static::KEY, $hash);
    }
    else {
        $event->addError([
            $this->t('The active lock file (@file) does not exist.', [
                '@file' => $active_lock_file_path,
            ]),
        ]);
    }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.