设计一个请求接收的思路

4 篇文章 0 订阅

有这么一个设计需求:提供一个仅支持POST请求的接口,用于收集提交过来的数据,并实现数据持久化存储。并要求提供对数据的过虑及对不同存储介质提供可扩展,提高代码的可复用性。根据设计模式原则:对修改关闭,对扩展开放。模型中需要引入数据中间件和依赖注入。

  1. 数据中间件可对数据进行过虑
  2. 依赖注入可实现对不同介质的存储操作

根据以上需求,初步构想得到以下结构模型:

// 存储介质接口模型
interface ActiveRecord {
    public function setAttributes(array $data);
    public function save();
}
class PostRoom {
    private $_middleware; // 数据中间件
    private $_data; // 传入的数据
    
    public function __construct($postData) {
        $this->_data = $postData;
    }
    
    // 设置数据中间件以进行数据过虑
    public function setMiddleware(array $middlewares) {
        // todo here
    }
    
    // 存储介质依赖注入
    public function save(ActiveRecord & $writer) {
        $data = $this->middleware_filter($this->_data);
        $writer->setAttributes($data);
        return $writer->save();
    }
    
    // 使用数据中间件对数据进行过虑
    public function middleware_filter($data) {
        if (!$this->_middleware) {
            return true;
        }
        
        $clear_data = $data;
    }
}
有中间件
无中间件
初始化传入数据
执行持久化存储
使用中间件过虑数据
是否有数据中间件
过虑数据
写入介质

未完待续

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yagas

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值