You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
1.9 KiB
83 lines
1.9 KiB
<?php
|
|
// +----------------------------------------------------------------------
|
|
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
|
// +----------------------------------------------------------------------
|
|
// | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved.
|
|
// +----------------------------------------------------------------------
|
|
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
|
// +----------------------------------------------------------------------
|
|
// | Author: CRMEB Team <admin@crmeb.com>
|
|
// +----------------------------------------------------------------------
|
|
|
|
namespace crmeb\basic;
|
|
|
|
|
|
/**
|
|
* Class BaseStorage
|
|
* @package crmeb\basic
|
|
*/
|
|
abstract class BaseStorage
|
|
{
|
|
|
|
/**
|
|
* 驱动名称
|
|
* @var string
|
|
*/
|
|
protected $name;
|
|
|
|
/**
|
|
* 驱动配置文件名
|
|
* @var string
|
|
*/
|
|
protected $configFile;
|
|
|
|
/**
|
|
* 错误信息
|
|
* @var string
|
|
*/
|
|
protected $error;
|
|
|
|
/**
|
|
* BaseStorage constructor.
|
|
* @param string $name 驱动名
|
|
* @param string $configFile 驱动配置名
|
|
* @param array $config 其他配置
|
|
*/
|
|
public function __construct(string $name, array $config = [], string $configFile = null)
|
|
{
|
|
$this->name = $name;
|
|
$this->configFile = $configFile;
|
|
$this->initialize($config);
|
|
}
|
|
|
|
|
|
/**
|
|
* 设置错误信息
|
|
* @param string|null $error
|
|
* @return bool
|
|
*/
|
|
protected function setError(?string $error = null)
|
|
{
|
|
$this->error = $error ?: '未知错误';
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* 获取错误信息
|
|
* @return string
|
|
*/
|
|
public function getError()
|
|
{
|
|
$error = $this->error;
|
|
$this->error = null;
|
|
return $error;
|
|
}
|
|
|
|
/**
|
|
* 初始化
|
|
* @param array $config
|
|
* @return mixed
|
|
*/
|
|
abstract protected function initialize(array $config);
|
|
|
|
}
|
|
|