From a788a553f0674bb5db76c33a401efe75c09afcdc Mon Sep 17 00:00:00 2001 From: Thibaud Fabre Date: Tue, 12 Jan 2016 12:31:28 +0100 Subject: [PATCH] Explicitely create parent directory of target files - Close #93 --- src/Resource/Teleporter/AbstractTeleporter.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/Resource/Teleporter/AbstractTeleporter.php b/src/Resource/Teleporter/AbstractTeleporter.php index ee129ec..3e7de88 100644 --- a/src/Resource/Teleporter/AbstractTeleporter.php +++ b/src/Resource/Teleporter/AbstractTeleporter.php @@ -19,9 +19,9 @@ abstract class AbstractTeleporter implements TeleporterInterface /** * Writes the target * - * @param String $data - * @param Resource $resource - * @param String $context + * @param string $data + * @param \Alchemy\Zippy\Resource\Resource $resource + * @param string $context * * @return TeleporterInterface * @@ -31,6 +31,10 @@ protected function writeTarget($data, Resource $resource, $context) { $target = $this->getTarget($context, $resource); + if (! file_exists(dirname($target)) && false === mkdir(dirname($target))) { + throw new IOException(sprintf('Could not create parent directory %s', dirname($target))); + } + if (false === file_put_contents($target, $data)) { throw new IOException(sprintf('Could not write to %s', $target)); }