From ef19a59cbe24a21d6579db40af839427b9aa923f Mon Sep 17 00:00:00 2001 From: Jean-Christian Denis Date: Sat, 13 May 2023 09:45:44 +0200 Subject: [PATCH] use dc2.26 helper --- src/Lock.php | 148 ------------------------------------ src/ZoneclearFeedServer.php | 4 +- 2 files changed, 2 insertions(+), 150 deletions(-) delete mode 100644 src/Lock.php diff --git a/src/Lock.php b/src/Lock.php deleted file mode 100644 index 53de1c9..0000000 --- a/src/Lock.php +++ /dev/null @@ -1,148 +0,0 @@ - - */ - protected static $lock_stack = []; - - /** - * Locked files status stack. - * - * @var array - */ - protected static $lock_disposable = []; - - /** - * Last lock attempt error - * - * @var string - */ - protected static $lock_error = ''; - - /** - * Lock file. - * - * @param string $file The file path - * @param bool $disposable File only use to lock - * - * @return null|string Clean file path on success, empty string on error, null if already locked - */ - public static function lock(string $file, bool $disposable = false): ?string - { - # Real path - $file = Path::real($file, false); - if (false === $file) { - self::$lock_error = __("Can't get file path"); - - return ''; - } - - # not a dir - if (is_dir($file)) { - self::$lock_error = __("Can't lock a directory"); - - return ''; - } - - # already marked as locked - if (isset(self::$lock_stack[$file]) || $disposable && file_exists($file)) { - return null; - } - - # Need flock function - if (!function_exists('flock')) { - self::$lock_error = __("Can't call php function named flock"); - - return ''; - } - - # Make dir - if (!is_dir(dirname($file))) { - Files::makeDir(dirname($file), true); - } - - # Open new file - if (!file_exists($file)) { - $resource = @fopen($file, 'w'); - if ($resource === false) { - self::$lock_error = __("Can't create file"); - - return ''; - } - fwrite($resource, '1', strlen('1')); - //fclose($resource); - } else { - # Open existsing file - $resource = @fopen($file, 'r+'); - if ($resource === false) { - self::$lock_error = __("Can't open file"); - - return ''; - } - } - - # Lock file - if (!flock($resource, LOCK_EX | LOCK_NB)) { - self::$lock_error = __("Can't lock file"); - - return ''; - } - - self::$lock_stack[$file] = $resource; - self::$lock_disposable[$file] = $disposable; - - return $file; - } - - /** - * Unlock file. - * - * @param string $file The file to unlock - */ - public static function unlock(string $file): void - { - if (isset(self::$lock_stack[$file])) { - fclose(self::$lock_stack[$file]); - if (!empty(self::$lock_disposable[$file]) && file_exists($file)) { - @unlink($file); - } - unset( - self::$lock_stack[$file], - self::$lock_disposable[$file] - ); - } - } - - /** - * Get last error from lock method. - * - * @return string The last lock error - */ - public static function getlastLockError(): string - { - return self::$lock_error; - } -} diff --git a/src/ZoneclearFeedServer.php b/src/ZoneclearFeedServer.php index 4517a0c..1dc8452 100644 --- a/src/ZoneclearFeedServer.php +++ b/src/ZoneclearFeedServer.php @@ -434,7 +434,7 @@ class ZoneclearFeedServer $f_md5 ); - $file = Lock::lock($file); + $file = Files::lock($file); if (is_null($file) || empty($file)) { return false; } @@ -453,7 +453,7 @@ class ZoneclearFeedServer public function unlockUpdate(): void { if (!is_null(self::$lock)) { - Lock::unlock(self::$lock); + Files::unlock(self::$lock); self::$lock = null; } }