Explorar o código

Make sure .composer dir is created before writing in it

Jordi Boggiano %!s(int64=13) %!d(string=hai) anos
pai
achega
18e28a2a9f
Modificáronse 1 ficheiros con 13 adicións e 0 borrados
  1. 13 0
      src/Composer/Json/JsonFile.php

+ 13 - 0
src/Composer/Json/JsonFile.php

@@ -64,6 +64,19 @@ class JsonFile
      */
     public function write(array $hash)
     {
+        $dir = dirname($this->path);
+        if (!is_dir($dir)) {
+            if (file_exists($dir)) {
+                throw new \UnexpectedValueException(
+                    $dir.' exists and is not a directory.'
+                );
+            }
+            if (!mkdir($dir, 0777, true)) {
+                throw new \UnexpectedValueException(
+                    $dir.' does not exist and could not be created.'
+                );
+            }
+        }
         file_put_contents($this->path, json_encode($hash));
     }