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通用计算工具》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

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

程序员面试笔试宝典

程序员面试笔试宝典

何昊、叶向阳、窦浩 / 2012-10 / 59.80元

《程序员面试笔试宝典》除了对传统的计算机相关知识(C/C++、数据结构与算法、操作系统、计算机网络与通信、软件工程、数据库、智力题、英语面试等)进行介绍外,还根据当前计算机技术的发展潮流,对面试笔试中常见的海量数据处理进行了详细的分析。同时,为了更具说服力,《程序员面试笔试宝典》特邀多位IT名企面试官现身说法,对面试过程中求职者存在的问题进行了深度剖析,同时《程序员面试笔试宝典》引入了一批来自于名......一起来看看 《程序员面试笔试宝典》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

html转js在线工具
html转js在线工具

html转js在线工具