简介

历史的车轮在不断的向前推进,NCF也在不断的迭代更新,只为成为更好的NCF

如果你之前没有用过NCF可以跳过这个文档,直接去下载最新的NCF源码进行实践。

NCF仓库地址:https://github.com/NeuCharFramework/NCF

如果你之前已经用过NCF,那么一定了解Xncf Module是啥了,那么就需要用到今天要说的内容了

在开始说之前呢,先来回顾一下,这个功能主要用在什么地方的

下图就是

NCF 中如何将Function升级到FunctionRender-LMLPHP

 这些功能原本是放在Xncf的Function里面的

更新到最新版以后,就没有Function了,更加深层次的DDD化了,所以采用了FunctionRender的方式

步骤

1.先建立对应的文件夹及文件

2.将原来Function里面的方法放入到AppService中

3.建立对应的参数的内容

4.将原来需要调用和触发方法的地方修改

5.将入口文件Register中使用到Function的地方去掉

6.将Function及下面对应的文件删除

7.更新Xncf Module的发布版本

8.重新发布

实施

1.先建立对应的文件夹及文件

NCF 中如何将Function升级到FunctionRender-LMLPHP

建立ACL -> Port

> 概念ACL (Anti Corruption Layer),又叫防腐层,参考文献:https://blog.csdn.net/muzizongheng/article/details/108871808

建立OHS -> Local -> AppService

> 概念OHS (Open Host Service) , 又叫开放主机服务,主要是定义一种协议,让你的子系统通过该协议来访问你的服务。你需要将该协议公开,这样任何与你集成的应用都可以使用该协议

建立OHS -> PL

> 概念PL(Published Language),又叫发布语言,和开放主机服务一起,例如json,xml或者自定义文档返回格式等

建立Domain -> Models

> 概念Domain,又叫领域,领域下可以建立自己的领域模型

2.将原来Function里面的方法放入到AppService中

原方法:

 1 //注意:Name 必须在单个 Xncf 模块中唯一!
 2 public override string Name => "更新文档";
 3
 4 public override string Description => "从 GitHub 上更新最新的官方文档。官方地址:https://gitee.com/NeuCharFramework/NcfDocs";
 5 public override Type FunctionParameterType => typeof(UpdateDocs_Parameters);
 6
 7 /// <summary>
 8 /// 运行
 9 /// </summary>
10 /// <param name="param"></param>
11 /// <returns></returns>
12 public override FunctionResult Run(IFunctionParameter param)
13 {
14     /* 这里是处理文字选项(单选)的一个示例 */
15     return FunctionHelper.RunFunction<UpdateDocs_Parameters>(param, (typeParam, sb, result) =>
16         {
17             //do something
18             result.Message = "执行成功"
19         });
20 }
11-10 14:50