Test Failed
Push — master ( 6ccab2...d43578 )
by Jean-Christophe
20:52
created

UFileSystemWriter::replaceWriteFromContent()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 2
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
eloc 1
dl 0
loc 2
ccs 0
cts 0
cp 0
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 3
crap 2
1
<?php
2
3
namespace Ubiquity\utils\base\traits;
4
5
use Ubiquity\utils\base\UFileSystem;
6
7 7
trait UFileSystemWriter {
8 7
	
9 7
	public static function openReplaceInTemplateFile($source, $keyAndValues) {
10 7
		if (\file_exists($source)) {
11
			$str=\file_get_contents($source);
12
			return self::replaceFromTemplate($str, $keyAndValues);
13
		}
14
		return false;
15 7
	}
16 7
	
17 7
	public static function openReplaceWriteFromTemplateFile($source, $destination, $keyAndValues) {
18
		if (($str=self::openReplaceInTemplateFile($source, $keyAndValues))) {
19
			return \file_put_contents($destination, $str, LOCK_EX);
20
		}
21
		return false;
22 7
	}
23 7
	
24 7
	public static function replaceFromTemplate($content, $keyAndValues) {
25
		\array_walk($keyAndValues, function (&$item) {
26
			if (\is_array($item))
27 7
				$item=\implode("\n", $item);
28 7
		});
29
			$str=\str_replace(\array_keys($keyAndValues), \array_values($keyAndValues), $content);
30
			return $str;
31 1
	}
32 1
	
33
	public static function replaceWriteFromContent($content, $destination, $keyAndValues) {
34
		return \file_put_contents($destination, self::replaceFromTemplate($content, $keyAndValues), LOCK_EX);
35 9
	}
36 9
	
37
	public static function save($filename,$content,$flags=LOCK_EX){
38
		return \file_put_contents($filename, $content, $flags);
39 8
	}
40 8
	
41
	public static function xcopy($source, $dest, $permissions = 0755){
42
		if (\is_link($source)) {
43 8
			return \symlink(\readlink($source), $dest);
44 8
		}
45
		if (\is_file($source)) {
46 8
			return \copy($source, $dest);
47 3
		}
48
		if (!\is_dir($dest)) {
49 8
			\mkdir($dest, $permissions,true);
50 8
		}
51 8
		$dir = \dir($source);
52 8
		while (false !== $entry = $dir->read()) {
53
			if ($entry == '.' || $entry == '..') {
54 8
				continue;
55
			}
56 8
			self::xcopy("$source/$entry", "$dest/$entry", $permissions);
57 8
		}
58
		$dir->close();
59
		return true;
60
	}
61
	
62
	public static function xmove(string $source,string $dest, int $permission=0755):bool {
63
		if (\is_link($source)) {
64
			if( \symlink(\readlink($source), $dest)){
65
				return \unlink($source);
66
			}
67
			return false;
68
		}
69
		if(self::xcopy($source, $dest,$permission)){
70
			if(\is_dir($source)){
71
				return UFileSystem::delTree($source);
72
			}
73
			return \unlink($source);
74
		}
75
		return false;
76
	}
77
}
78
79