CCM通用计算工具

栏目: PHP · 发布时间: 8年前

内容简介:CCM通用计算工具

背景

工作中遇到的需求,对一些投资项目进行收益评估.其中涉及到各种财务数据的计算.分析人员需要通过输入不同的参数来对投资收益进行对比以此来决定对项目如何进行投资以及如何控制各项成本.

问题和解决思路

因为涉及到很多公式,不同的公式需要带入其他公式运算的结果,因此用代码和函数来处理变得非常复杂.各种调用和数据结构的处理让公式的修改和调试异常困难.

CCM通用计算工具

无论经过多少变换,每个公式实际到最后都是映射到了一个输入的值.

因此写了这个库用来对各种公式进行统一管理.通过一个 Context 来管理每个公式的运算结果.跟踪每个公式运行所依赖的公式.无论任何公式都可以是通过上层的公式最终映射到一个输入值.

这种方式与依赖注入(Dependency injection)的方式很相似.所以使用之前框架的方式进行了处理.在 Context 中解决依赖.并记录依赖的树. 当从 Context 获取一个数据时.会自动去运算相关的公式.并记录该值的运算过程.这样当某个输入变量进行修改时可以删除必要的缓存.让其重新计算.提高计算效率.

使用说明

CCM Git库 vincentmi/ccm

加入到 composer.json

composer require vincentmi/ccm
composer update

test.php

<?php
require  'vendor/autoload.php';
use CCM\Context;

$ctx =  new Context();
echo $ctx->set('a',1)->set('b',1)->reg('c','$a + $b')->fetch('c');
## 打印依赖
$ctx->getDepends('c');
## 打印调用堆栈
$ctx->getCalls();

以上所述就是小编给大家介绍的《CCM通用计算工具》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Java Message Service API Tutorial and Reference

Java Message Service API Tutorial and Reference

Hapner, Mark; Burridge, Rich; Sharma, Rahul / 2002-2 / $ 56.49

Java Message Service (JMS) represents a powerful solution for communicating between Java enterprise applications, software components, and legacy systems. In this authoritative tutorial and comprehens......一起来看看 《Java Message Service API Tutorial and Reference》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器