library/smarty/libs/sysplugins/smarty_internal_write_file.php
changeset 46 f11c31f7fa3e
parent 45 a56e7f9a0463
child 47 03388ec805b4
deleted file mode 100644
--- a/library/smarty/libs/sysplugins/smarty_internal_write_file.php
+++ /dev/null
@@ -1,86 +0,0 @@
-<?php
-/**
- * Smarty write file plugin
- *
- * @package    Smarty
- * @subpackage PluginsInternal
- * @author     Monte Ohrt
- */
-
-/**
- * Smarty Internal Write File Class
- *
- * @package    Smarty
- * @subpackage PluginsInternal
- */
-class Smarty_Internal_Write_File {
-    /**
-     * Writes file in a safe way to disk
-     *
-     * @param  string $_filepath complete filepath
-     * @param  string $_contents file content
-     * @param  Smarty $smarty smarty instance
-     *
-     * @throws SmartyException
-     * @return boolean true
-     */
-    public function writeFile($_filepath, $_contents, Smarty $smarty) {
-        $_error_reporting = error_reporting();
-        error_reporting($_error_reporting & ~E_NOTICE & ~E_WARNING);
-        if ($smarty->_file_perms !== null) {
-            $old_umask = umask(0);
-        }
-
-        $_dirpath = dirname($_filepath);
-        // if subdirs, create dir structure
-        if ($_dirpath !== '.' && !file_exists($_dirpath)) {
-            mkdir($_dirpath, $smarty->_dir_perms === null ? 0777 : $smarty->_dir_perms, true);
-        }
-
-        // write to tmp file, then move to overt file lock race condition
-        $_tmp_file = $_dirpath . DS . str_replace(array('.', ','), '_', uniqid('wrt', true));
-        if (!file_put_contents($_tmp_file, $_contents)) {
-            error_reporting($_error_reporting);
-            throw new SmartyException("unable to write file {$_tmp_file}");
-        }
-
-        /*
-         * Windows' rename() fails if the destination exists,
-         * Linux' rename() properly handles the overwrite.
-         * Simply unlink()ing a file might cause other processes
-         * currently reading that file to fail, but linux' rename()
-         * seems to be smart enough to handle that for us.
-         */
-        if (Smarty::$_IS_WINDOWS) {
-            // remove original file
-            if (is_file($_filepath)) {
-                @unlink($_filepath);
-            }
-            // rename tmp file
-            $success = @rename($_tmp_file, $_filepath);
-        } else {
-            // rename tmp file
-            $success = @rename($_tmp_file, $_filepath);
-            if (!$success) {
-                // remove original file
-                if (is_file($_filepath)) {
-                    @unlink($_filepath);
-                }
-                // rename tmp file
-                $success = @rename($_tmp_file, $_filepath);
-            }
-        }
-        if (!$success) {
-            error_reporting($_error_reporting);
-            throw new SmartyException("unable to write file {$_filepath}");
-        }
-        if ($smarty->_file_perms !== null) {
-            // set file permissions
-            chmod($_filepath, $smarty->_file_perms);
-            umask($old_umask);
-        }
-        error_reporting($_error_reporting);
-
-        return true;
-    }
-}