本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

使用链式特征的面向方面编程

发布于2023-09-20 21:25     阅读(315)     评论(0)     点赞(5)     收藏(3)


我目前正在评估是否要在我的软件项目中使用特征。在这个项目中,我想使用面向方面的编程(https://en.wikipedia.org/wiki/Aspect-oriented_software_development)来将系统逻辑与业务逻辑解耦。

我想要有一个记录器特征和一个缓存特征。现在的问题是:是否可以在同一个类方法上使用这两个特征?有明确的执行顺序吗?

思想示例:

trait Logger {
  public function warn($argument) {
    $result = parent::__FUNCTION__($argument);
    if(!$result) echo "warn";
    return $result;
  }
}

trait Cacher {
  public function cache($argument) {
    if(CACHE::contains(__FUNCTION__, $argument)) {
      return CACHE::get(__FUNCTION__, $argument);
    }
    return parent::__FUNCTION__($argument);
  }
}

class MyBusiness {
  use Logger, Cache { Logger::logger as myTest, Cache::cache as myTest before Logger }

  public function myTest(boolean $someBool) {
    return !$someBool;
  }
}

执行顺序应该是 Enter Cache::cache、Enter Logger::logger、Enter myTest return !bool、记录它、缓存它。


解决方案


暂无回答



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.phpheidong.com/blog/article/548962/4c5ef03cdbc6f93ac39d/

来源:php黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

5 0
收藏该文
已收藏

评论内容:(最多支持255个字符)