for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Glorand\Model\Settings\Managers;
use Glorand\Model\Settings\Contracts\SettingsManagerContract;
use Illuminate\Support\Arr;
/**
* Class FieldSettingsManager
* @package Glorand\Model\Settings\Managers
* @property \Illuminate\Database\Eloquent\Model|\Glorand\Model\Settings\Traits\HasSettingsField $model
*/
class FieldSettingsManager extends AbstractSettingsManager
{
* @param array $settings
* @return \Glorand\Model\Settings\Contracts\SettingsManagerContract
public function apply(array $settings = []): SettingsManagerContract
$this->model->{$this->model->getSettingsFieldName()} = json_encode($settings);
if ($this->model->isPersistSettings()) {
$this->model->save();
save()
If this is a false-positive, you can also ignore this issue in your code via the ignore-call annotation
ignore-call
$this->model->/** @scrutinizer ignore-call */
save();
}
return $this;
* @param string|null $path
public function delete(string $path = null): SettingsManagerContract
if (!$path) {
$settings = [];
} else {
$settings = $this->all();
Arr::forget($settings, $path);
$this->apply($settings);
* @param string $path
* @param mixed $value
public function set(string $path, $value): SettingsManagerContract
Arr::set($settings, $path, $value);
return $this->apply($settings);