vendor/codeages/biz-framework/src/Setting/Service/Impl/SettingServiceImpl.php

(开头部分) 1KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

<?php

namespace Codeages\Biz\Framework\Setting\Service\Impl;

use Codeages\Biz\Framework\Service\BaseService;
use Codeages\Biz\Framework\Setting\Service\SettingService;
use Codeages\Biz\Framework\Service\Exception\ServiceException;

class SettingServiceImpl extends BaseService implements SettingService
{
    public function get($name, $default = null)
    {
        list($name, $subName) = $this->splitName($name);

        $setting = $this->getByName($name);
        if (!$setting) {
            return $default;
        }

        if ($subName && (!is_array($setting['data']) || !isset($setting['data'][$subName]))) {
            return $default;
        }

        if (is_null($subName)) {
            return $setting['data'];
        }

        return $setting['data'][$subName];
    }

    public function set($name, $data)
    {
        list($name, $subName) = $this->splitName($name);

        $setting = $this->getByName($name);
        if ($setting) {
            if ($subName && !is_array($setting['data'])) {
                throw new ServiceException("Setting `{$name}` is not array, so it not support dot syntax.");
            }
            if ($subName) {
                $data = array_merge($setting['data'], array($subName => $data));
            }
            $this->getSettingDao()->update($setting['id'], array(
                'data' => $data,
            ));
        } else {
            if ($subName) {
                $data = array($subName => $data);
            }
            $this->getSettingDao()->create(array(
                'name' => $name,
                'data' => $data,
            ));
        }
        $this->clearCache();
    }

    public function remove($name)
    {
        list($name, $subName) = $this->splitName($name);

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。