2023年11月

默认使用方式是需要两个文件:模型文件,规则文件。这里可以直接抄代码
Editor | Casbin,这里选择RBAC模型的。
在写管理系统时,不会将规则保存在文件中,会存入数据库中使用。这个时候可能就需要我们自己写一个适配器来转换它的存储方式Policy的存储 | Casbin

QQ20231129-101300@2x.png

在进行匹配判断时,是将g类型的规则转换为p类型的规则,图中的例子,就是(g,42,1)= >(p,1,xxx)。

作者:往昔不悔
链接:https://juejin.cn/post/7164667666773311501

在Java项目中,通常会使用一种基于分层架构的设计模式,将代码按照不同的职责划分到不同的包或模块中。在这种设计模式中,常见的包括DAO(数据访问对象)、Service(服务层)和Domain(领域模型)。

1、DAO(数据访问对象):DAO层负责与数据源(如数据库)进行交互,并提供对数据的持久化和访问操作。它封装了对数据的增删改查等数据库操作,提供了一种面向对象的方式来访问和操作数据,隐藏了底层数据库的细节。DAO层通常包含与数据源交互的接口和实现类,可以通过接口定义一组标准的数据访问方法,而具体的实现类则负责实现这些方法。

2、Service(服务层):Service层是业务逻辑的处理层,负责封装具体的业务逻辑,并协调不同的DAO操作来完成特定的任务。它作为DAO层和表示层(如控制器或界面)之间的中间层,提供一个统一的接口供表示层调用。Service层可以处理数据的验证、事务管理、权限控制等与业务相关的逻辑。

3、Domain(领域模型):Domain层代表了项目中的领域模型或实体对象,它是项目中的核心部分。领域模型通常对应于真实世界中的概念,如用户、订单、产品等,它们具有特定的属性和行为。Domain层通常包含与领域模型相关的类和接口,用于定义和表示领域模型的结构和行为。

这种分层架构的设计模式可以帮助提高代码的可维护性、可扩展性和可重用性,使不同的职责得到清晰的划分,并且各层之间通过接口进行解耦,降低了模块之间的依赖性。

4种资源:

资源拥有者(小明);
客户端(软文系统);
授权服务(微信公众号平台);
受保护资源(小明公众号内的文章);

auth2.0.png

QQ20231122-234339@2x.png

QQ20231123-000141@2x.png

问题:

微信小程序使用 echarts 时,控制台报错
[Component] : canvas 2d 接口支持同层渲染且性能更佳,建议切换使用。详见文档

原因:

echarts内部原因

解决办法:

1、修改源码 ec-canvas/ec-canvas.js

// before 
  data: {
    isUseNewCanvas: false
  },

// after  
  data: {
    isUseNewCanvas: true
  },

修改如上所示即可。

2、同时,需要组件调用方不能设置 force-use-old-canvas=“true”

<ec-canvas id="mychart-dom-bar" canvas-id="mychart-bar"   ec="{{ ec }}"></ec-canvas>

转自:https://blog.csdn.net/qubes/article/details/130660989

php.8.2.png

动态属性的使用

弃用动态属性创建,除非类选择使用 #[\AllowDynamicProperties] 注解。stdClass 允许动态属性。__get()/__set() 魔术方法不受此更改的影响。解决动态属性弃用警告,可以通过以下方式:

  1. 声明属性(首选)。
  2. 将 #[\AllowDynamicProperties] 添加到 #[\AllowDynamicProperties](这也适用于所有子类)。
  3. 如果需要将附加数据于不属于自己的对象相关联,则使用 WeakMap。

WeakMap方法比较常用,因为1与2是需要添加类中,这个类有可能不是自已写的,比如框架的类则不能修改,这时需要用到第3条,用法如下:

<?php
$wm = new WeakMap();

$o = new stdClass;

class A {
    public function __destruct() {
        echo "Dead!\n";
    }
}

$wm[$o] = new A;

var_dump(count($wm));
echo "Unsetting...\n";
unset($o);
echo "Done\n";
var_dump(count($wm));


https://www.php.net/manual/zh/migration82.deprecated.php