These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more
1 | <?php |
||
2 | |||
3 | namespace Spatie\ServerMonitor\Models; |
||
4 | |||
5 | use Illuminate\Support\Collection; |
||
6 | use Illuminate\Database\Eloquent\Model; |
||
7 | use Spatie\ServerMonitor\Models\Enums\HostHealth; |
||
8 | use Spatie\ServerMonitor\Models\Enums\CheckStatus; |
||
9 | use Illuminate\Database\Eloquent\Relations\HasMany; |
||
10 | use Spatie\ServerMonitor\Models\Presenters\HostPresenter; |
||
11 | use Spatie\ServerMonitor\Models\Concerns\HasCustomProperties; |
||
12 | |||
13 | class Host extends Model |
||
14 | { |
||
15 | use HostPresenter, HasCustomProperties; |
||
16 | |||
17 | public $casts = [ |
||
18 | 'custom_properties' => 'array', |
||
19 | ]; |
||
20 | |||
21 | public $guarded = []; |
||
22 | |||
23 | public function checks(): HasMany |
||
24 | { |
||
25 | return $this->hasMany(config('server-monitor.check_model', Check::class)); |
||
26 | } |
||
27 | |||
28 | public function getEnabledChecksAttribute(): Collection |
||
29 | { |
||
30 | return $this->checks()->enabled()->get(); |
||
31 | } |
||
32 | |||
33 | public function isHealthy(): bool |
||
34 | { |
||
35 | return $this->status === HostHealth::HEALTHY; |
||
0 ignored issues
–
show
|
|||
36 | } |
||
37 | |||
38 | public function isUnhealthy(): bool |
||
39 | { |
||
40 | return $this->status === HostHealth::UNHEALTHY; |
||
0 ignored issues
–
show
The property
status does not exist on object<Spatie\ServerMonitor\Models\Host> . Since you implemented __get , maybe consider adding a @property annotation.
Since your code implements the magic getter <?php
/**
* @property int $x
* @property int $y
* @property string $text
*/
class MyLabel
{
private $properties;
private $allowedProperties = array('x', 'y', 'text');
public function __get($name)
{
if (isset($properties[$name]) && in_array($name, $this->allowedProperties)) {
return $properties[$name];
} else {
return null;
}
}
public function __set($name, $value)
{
if (in_array($name, $this->allowedProperties)) {
$properties[$name] = $value;
} else {
throw new \LogicException("Property $name is not defined.");
}
}
}
If the property has read access only, you can use the @property-read annotation instead. Of course, you may also just have mistyped another name, in which case you should fix the error. See also the PhpDoc documentation for @property.
Loading history...
|
|||
41 | } |
||
42 | |||
43 | public function hasWarning(): bool |
||
44 | { |
||
45 | return $this->status === HostHealth::WARNING; |
||
0 ignored issues
–
show
The property
status does not exist on object<Spatie\ServerMonitor\Models\Host> . Since you implemented __get , maybe consider adding a @property annotation.
Since your code implements the magic getter <?php
/**
* @property int $x
* @property int $y
* @property string $text
*/
class MyLabel
{
private $properties;
private $allowedProperties = array('x', 'y', 'text');
public function __get($name)
{
if (isset($properties[$name]) && in_array($name, $this->allowedProperties)) {
return $properties[$name];
} else {
return null;
}
}
public function __set($name, $value)
{
if (in_array($name, $this->allowedProperties)) {
$properties[$name] = $value;
} else {
throw new \LogicException("Property $name is not defined.");
}
}
}
If the property has read access only, you can use the @property-read annotation instead. Of course, you may also just have mistyped another name, in which case you should fix the error. See also the PhpDoc documentation for @property.
Loading history...
|
|||
46 | } |
||
47 | |||
48 | public function getStatusAttribute(): string |
||
49 | { |
||
50 | if ($this->enabled_checks->count() === 0) { |
||
0 ignored issues
–
show
The property
enabled_checks does not exist on object<Spatie\ServerMonitor\Models\Host> . Since you implemented __get , maybe consider adding a @property annotation.
Since your code implements the magic getter <?php
/**
* @property int $x
* @property int $y
* @property string $text
*/
class MyLabel
{
private $properties;
private $allowedProperties = array('x', 'y', 'text');
public function __get($name)
{
if (isset($properties[$name]) && in_array($name, $this->allowedProperties)) {
return $properties[$name];
} else {
return null;
}
}
public function __set($name, $value)
{
if (in_array($name, $this->allowedProperties)) {
$properties[$name] = $value;
} else {
throw new \LogicException("Property $name is not defined.");
}
}
}
If the property has read access only, you can use the @property-read annotation instead. Of course, you may also just have mistyped another name, in which case you should fix the error. See also the PhpDoc documentation for @property.
Loading history...
|
|||
51 | return HostHealth::WARNING; |
||
52 | } |
||
53 | |||
54 | if ($this->enabled_checks->contains->hasStatus(CheckStatus::FAILED)) { |
||
0 ignored issues
–
show
The property
enabled_checks does not exist on object<Spatie\ServerMonitor\Models\Host> . Since you implemented __get , maybe consider adding a @property annotation.
Since your code implements the magic getter <?php
/**
* @property int $x
* @property int $y
* @property string $text
*/
class MyLabel
{
private $properties;
private $allowedProperties = array('x', 'y', 'text');
public function __get($name)
{
if (isset($properties[$name]) && in_array($name, $this->allowedProperties)) {
return $properties[$name];
} else {
return null;
}
}
public function __set($name, $value)
{
if (in_array($name, $this->allowedProperties)) {
$properties[$name] = $value;
} else {
throw new \LogicException("Property $name is not defined.");
}
}
}
If the property has read access only, you can use the @property-read annotation instead. Of course, you may also just have mistyped another name, in which case you should fix the error. See also the PhpDoc documentation for @property.
Loading history...
|
|||
55 | return HostHealth::UNHEALTHY; |
||
56 | } |
||
57 | |||
58 | if ($this->enabled_checks->every->hasStatus(CheckStatus::SUCCESS)) { |
||
0 ignored issues
–
show
The property
enabled_checks does not exist on object<Spatie\ServerMonitor\Models\Host> . Since you implemented __get , maybe consider adding a @property annotation.
Since your code implements the magic getter <?php
/**
* @property int $x
* @property int $y
* @property string $text
*/
class MyLabel
{
private $properties;
private $allowedProperties = array('x', 'y', 'text');
public function __get($name)
{
if (isset($properties[$name]) && in_array($name, $this->allowedProperties)) {
return $properties[$name];
} else {
return null;
}
}
public function __set($name, $value)
{
if (in_array($name, $this->allowedProperties)) {
$properties[$name] = $value;
} else {
throw new \LogicException("Property $name is not defined.");
}
}
}
If the property has read access only, you can use the @property-read annotation instead. Of course, you may also just have mistyped another name, in which case you should fix the error. See also the PhpDoc documentation for @property.
Loading history...
|
|||
59 | return HostHealth::HEALTHY; |
||
60 | } |
||
61 | |||
62 | return HostHealth::WARNING; |
||
63 | } |
||
64 | |||
65 | public function hasCheckType(string $type): bool |
||
66 | { |
||
67 | return $this->checks->contains(function (Check $check) use ($type) { |
||
0 ignored issues
–
show
The property
checks does not exist on object<Spatie\ServerMonitor\Models\Host> . Since you implemented __get , maybe consider adding a @property annotation.
Since your code implements the magic getter <?php
/**
* @property int $x
* @property int $y
* @property string $text
*/
class MyLabel
{
private $properties;
private $allowedProperties = array('x', 'y', 'text');
public function __get($name)
{
if (isset($properties[$name]) && in_array($name, $this->allowedProperties)) {
return $properties[$name];
} else {
return null;
}
}
public function __set($name, $value)
{
if (in_array($name, $this->allowedProperties)) {
$properties[$name] = $value;
} else {
throw new \LogicException("Property $name is not defined.");
}
}
}
If the property has read access only, you can use the @property-read annotation instead. Of course, you may also just have mistyped another name, in which case you should fix the error. See also the PhpDoc documentation for @property.
Loading history...
|
|||
68 | return $check->type === $type; |
||
0 ignored issues
–
show
The property
type does not exist on object<Spatie\ServerMonitor\Models\Check> . Since you implemented __get , maybe consider adding a @property annotation.
Since your code implements the magic getter <?php
/**
* @property int $x
* @property int $y
* @property string $text
*/
class MyLabel
{
private $properties;
private $allowedProperties = array('x', 'y', 'text');
public function __get($name)
{
if (isset($properties[$name]) && in_array($name, $this->allowedProperties)) {
return $properties[$name];
} else {
return null;
}
}
public function __set($name, $value)
{
if (in_array($name, $this->allowedProperties)) {
$properties[$name] = $value;
} else {
throw new \LogicException("Property $name is not defined.");
}
}
}
If the property has read access only, you can use the @property-read annotation instead. Of course, you may also just have mistyped another name, in which case you should fix the error. See also the PhpDoc documentation for @property.
Loading history...
|
|||
69 | }); |
||
70 | } |
||
71 | } |
||
72 |
Since your code implements the magic getter
_get
, this function will be called for any read access on an undefined variable. You can add the@property
annotation to your class or interface to document the existence of this variable.If the property has read access only, you can use the @property-read annotation instead.
Of course, you may also just have mistyped another name, in which case you should fix the error.
See also the PhpDoc documentation for @property.