84 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?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);
 | 
						||
 | 
						||
}
 |