HasOperations::copy()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 7
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 2
eloc 3
c 1
b 0
f 0
nc 2
nop 1
dl 0
loc 7
rs 10
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 getPath() 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 ignore-call  annotation

120
        return $this->filesystem->download($this->/** @scrutinizer ignore-call */ getPath(), $name ? $name : $this->getName());
Loading history...
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 ignore-call  annotation

120
        return $this->filesystem->download($this->getPath(), $name ? $name : $this->/** @scrutinizer ignore-call */ getName());
Loading history...
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
Bug Best Practice introduced by
The property path does not exist. Although not strictly required by PHP, it is generally a best practice to declare properties explicitly.
Loading history...
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
Unused Code introduced by
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 ignore-call  annotation

151
            return /** @scrutinizer ignore-call */ new self($this->filesystem, $newpath);

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.

Loading history...
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
}