for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Spatie\ServerMonitor\Models\Concerns;
use Illuminate\Support\Arr;
trait HasCustomProperties
{
public function hasCustomProperty(string $propertyName): bool
return Arr::has($this->custom_properties, $propertyName);
custom_properties
In PHP it is possible to write to properties without declaring them. For example, the following is perfectly valid PHP code:
class MyClass { } $x = new MyClass(); $x->foo = true;
Generally, it is a good practice to explictly declare properties to avoid accidental typos and provide IDE auto-completion:
class MyClass { public $foo; } $x = new MyClass(); $x->foo = true;
}
/**
* @param string $propertyName
* @param mixed $default
*
* @return mixed
*/
public function getCustomProperty(string $propertyName, $default = null)
return Arr::get($this->custom_properties, $propertyName, $default);
* @param string $name
* @param mixed $value
* @return $this
public function setCustomProperty(string $name, $value)
$customProperties = $this->custom_properties;
Arr::set($customProperties, $name, $value);
$this->custom_properties = $customProperties;
return $this;
public function forgetCustomProperty(string $name)
Arr::forget($customProperties, $name);
In PHP it is possible to write to properties without declaring them. For example, the following is perfectly valid PHP code:
Generally, it is a good practice to explictly declare properties to avoid accidental typos and provide IDE auto-completion: