]> git.mxchange.org Git - friendica.git/blobdiff - src/Model/Storage/Filesystem.php
Raw content is now stored with announce messages as well
[friendica.git] / src / Model / Storage / Filesystem.php
index 9c429cfb3cf7afb5d1206690b8b12f58706bda45..ad9a4adf870babd29a8972e01326cf5696bd39c9 100644 (file)
@@ -1,18 +1,33 @@
 <?php
 /**
- * @file src/Model/Storage/Filesystem.php
- * @brief Storage backend system
+ * @copyright Copyright (C) 2020, Friendica
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <https://www.gnu.org/licenses/>.
+ *
  */
 
 namespace Friendica\Model\Storage;
 
-use Friendica\Core\Config\IConfiguration;
-use Friendica\Core\L10n\L10n;
+use Friendica\Core\Config\IConfig;
+use Friendica\Core\L10n;
 use Friendica\Util\Strings;
 use Psr\Log\LoggerInterface;
 
 /**
- * @brief Filesystem based storage backend
+ * Filesystem based storage backend
  *
  * This class manage data on filesystem.
  * Base folder for storage is set in storage.filesystem_path.
@@ -28,7 +43,7 @@ class Filesystem extends AbstractStorage
        // Default base folder
        const DEFAULT_BASE_FOLDER = 'storage';
 
-       /** @var IConfiguration */
+       /** @var IConfig */
        private $config;
 
        /** @var string */
@@ -37,11 +52,11 @@ class Filesystem extends AbstractStorage
        /**
         * Filesystem constructor.
         *
-        * @param IConfiguration  $config
+        * @param IConfig         $config
         * @param LoggerInterface $logger
         * @param L10n            $l10n
         */
-       public function __construct(IConfiguration $config, LoggerInterface $logger, L10n $l10n)
+       public function __construct(IConfig $config, LoggerInterface $logger, L10n $l10n)
        {
                parent::__construct($l10n, $logger);
 
@@ -52,7 +67,7 @@ class Filesystem extends AbstractStorage
        }
 
        /**
-        * @brief Split data ref and return file path
+        * Split data ref and return file path
         *
         * @param string $reference Data reference
         *
@@ -69,7 +84,7 @@ class Filesystem extends AbstractStorage
 
 
        /**
-        * @brief Create dirctory tree to store file, with .htaccess and index.html files
+        * Create dirctory tree to store file, with .htaccess and index.html files
         *
         * @param string $file Path and filename
         *
@@ -125,7 +140,10 @@ class Filesystem extends AbstractStorage
 
                $this->createFoldersForFile($file);
 
-               if (!file_put_contents($file, $data)) {
+               $result = file_put_contents($file, $data);
+
+               // just in case the result is REALLY false, not zero or empty or anything else, throw the exception
+               if ($result === false) {
                        $this->logger->warning('Failed to write data.', ['file' => $file]);
                        throw new StorageException($this->l10n->t('Filesystem storage failed to save data to "%s". Check your write permissions', $file));
                }