1 | <?php |
||||
2 | |||||
3 | namespace Nip\Filesystem\File; |
||||
4 | |||||
5 | /** |
||||
6 | * Trait HasOperations |
||||
7 | * @package Nip\Filesystem\File |
||||
8 | */ |
||||
9 | trait HasOperations |
||||
10 | { |
||||
11 | |||||
12 | /** |
||||
13 | * Check whether the file exists. |
||||
14 | * |
||||
15 | * @return bool |
||||
16 | */ |
||||
17 | public function exists() |
||||
18 | { |
||||
19 | return $this->filesystem->has($this->path); |
||||
20 | } |
||||
21 | |||||
22 | /** |
||||
23 | * Read the file. |
||||
24 | * |
||||
25 | * @return string|false file contents |
||||
26 | */ |
||||
27 | public function read() |
||||
28 | { |
||||
29 | return $this->filesystem->read($this->path); |
||||
30 | } |
||||
31 | |||||
32 | /** |
||||
33 | * Read the file as a stream. |
||||
34 | * |
||||
35 | * @return resource|false file stream |
||||
36 | */ |
||||
37 | public function readStream() |
||||
38 | { |
||||
39 | return $this->filesystem->readStream($this->path); |
||||
40 | } |
||||
41 | |||||
42 | /** |
||||
43 | * Write the new file. |
||||
44 | * |
||||
45 | * @param string $content |
||||
46 | * |
||||
47 | * @return bool success boolean |
||||
48 | */ |
||||
49 | public function write($content) |
||||
50 | { |
||||
51 | return $this->filesystem->write($this->path, $content); |
||||
52 | } |
||||
53 | |||||
54 | /** |
||||
55 | * Write the new file using a stream. |
||||
56 | * |
||||
57 | * @param resource $resource |
||||
58 | * |
||||
59 | * @return bool success boolean |
||||
60 | */ |
||||
61 | public function writeStream($resource) |
||||
62 | { |
||||
63 | return $this->filesystem->writeStream($this->path, $resource); |
||||
64 | } |
||||
65 | |||||
66 | /** |
||||
67 | * Update the file contents. |
||||
68 | * |
||||
69 | * @param string $content |
||||
70 | * |
||||
71 | * @return bool success boolean |
||||
72 | */ |
||||
73 | public function update($content) |
||||
74 | { |
||||
75 | return $this->filesystem->update($this->path, $content); |
||||
76 | } |
||||
77 | |||||
78 | /** |
||||
79 | * Update the file contents with a stream. |
||||
80 | * |
||||
81 | * @param resource $resource |
||||
82 | * |
||||
83 | * @return bool success boolean |
||||
84 | */ |
||||
85 | public function updateStream($resource) |
||||
86 | { |
||||
87 | return $this->filesystem->updateStream($this->path, $resource); |
||||
88 | } |
||||
89 | |||||
90 | /** |
||||
91 | * Create the file or update if exists. |
||||
92 | * |
||||
93 | * @param string $content |
||||
94 | * |
||||
95 | * @return bool success boolean |
||||
96 | */ |
||||
97 | public function put($content) |
||||
98 | { |
||||
99 | return $this->filesystem->put($this->path, $content); |
||||
100 | } |
||||
101 | |||||
102 | /** |
||||
103 | * Create the file or update if exists using a stream. |
||||
104 | * |
||||
105 | * @param resource $resource |
||||
106 | * |
||||
107 | * @return bool success boolean |
||||
108 | */ |
||||
109 | public function putStream($resource) |
||||
110 | { |
||||
111 | return $this->filesystem->putStream($this->path, $resource); |
||||
112 | } |
||||
113 | |||||
114 | /** |
||||
115 | * @param null|string $name |
||||
116 | * @return \Symfony\Component\HttpFoundation\StreamedResponse |
||||
117 | */ |
||||
118 | public function download($name = null): \Symfony\Component\HttpFoundation\StreamedResponse |
||||
119 | { |
||||
120 | return $this->filesystem->download($this->getPath(), $name ? $name : $this->getName()); |
||||
0 ignored issues
–
show
Bug
introduced
by
![]() It seems like
getName() must be provided by classes using this trait. How about adding it as abstract method to this trait?
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
![]() |
|||||
121 | } |
||||
122 | |||||
123 | /** |
||||
124 | * Rename the file. |
||||
125 | * |
||||
126 | * @param string $newpath |
||||
127 | * |
||||
128 | * @return bool success boolean |
||||
129 | */ |
||||
130 | public function rename($newpath) |
||||
131 | { |
||||
132 | if ($this->filesystem->rename($this->path, $newpath)) { |
||||
133 | $this->path = $newpath; |
||||
0 ignored issues
–
show
|
|||||
134 | |||||
135 | return true; |
||||
136 | } |
||||
137 | |||||
138 | return false; |
||||
139 | } |
||||
140 | |||||
141 | /** |
||||
142 | * Copy the file. |
||||
143 | * |
||||
144 | * @param string $newpath |
||||
145 | * |
||||
146 | * @return self|false new file or false |
||||
147 | */ |
||||
148 | public function copy($newpath) |
||||
149 | { |
||||
150 | if ($this->filesystem->copy($this->path, $newpath)) { |
||||
151 | return new self($this->filesystem, $newpath); |
||||
0 ignored issues
–
show
The call to
Nip\Filesystem\File\HasOperations::__construct() has too many arguments starting with $this->filesystem .
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
This check compares calls to functions or methods with their respective definitions. If the call has more arguments than are defined, it raises an issue. If a function is defined several times with a different number of parameters, the check may pick up the wrong definition and report false positives. One codebase where this has been known to happen is Wordpress. Please note the @ignore annotation hint above. ![]() |
|||||
152 | } |
||||
153 | |||||
154 | return false; |
||||
155 | } |
||||
156 | |||||
157 | /** |
||||
158 | * Delete the file. |
||||
159 | * |
||||
160 | * @return bool success boolean |
||||
161 | */ |
||||
162 | public function delete() |
||||
163 | { |
||||
164 | return $this->filesystem->delete($this->path); |
||||
165 | } |
||||
166 | } |