diff --git a/lib/manager/composer/extract.js b/lib/manager/composer/extract.js
index 94c496993b984c576fe6601fdd8523372a1d804e..7ba6d5506735379f5bedd7b9de08707a0ce410b8 100644
--- a/lib/manager/composer/extract.js
+++ b/lib/manager/composer/extract.js
@@ -52,13 +52,29 @@ async function extractPackageFile(content, fileName) {
   if (!deps.length) {
     return null;
   }
-  let composerLock = false;
+  const res = { deps };
   const filePath = fileName.replace(/\.json$/, '.lock');
-  if (await platform.getFile(filePath)) {
+  const lockContents = await platform.getFile(filePath);
+  // istanbul ignore if
+  if (lockContents) {
     logger.debug({ packageFile: fileName }, 'Found composer lock file');
-    composerLock = filePath;
+    res.composerLock = filePath;
+    try {
+      const lockParsed = JSON.parse(lockContents);
+      for (const dep of res.deps) {
+        const lockedDep = lockParsed.packages.find(
+          item => item.name === dep.depName
+        );
+        if (lockedDep) {
+          dep.lockedVersion = lockedDep.version.replace(/^v/, '');
+        }
+      }
+    } catch (err) {
+      logger.warn({ err }, 'Error processing composer.lock');
+    }
+  } else {
+    res.composerLock = false;
   }
-  const res = { deps, composerLock };
   if (composerJson.repositories) {
     if (is.array(composerJson.repositories)) {
       res.registryUrls = composerJson.repositories;