2017 © Pedro Peláez
 

library ccm

A simple common calculation model

image

vincentmi/ccm

A simple common calculation model

  • Wednesday, February 7, 2018
  • by vincentmi
  • Repository
  • 1 Watchers
  • 2 Stars
  • 265 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 18 Versions
  • 1 % Grown

The README.md

ccm

Common Calculation Model ., (*1)

简介

工作遇到的情况,需要根据一堆数学模型运算产生结果。作为投资的参考。 写了个简单的框架进行管理。, (*2)

author: miwenshu@gmail.com, (*3)

blog: http://vnzmi.com, (*4)

特性

  • 通过 $context->addInterceptor() 添加拦截器可以对指定的域进行拦截 实现按需加载参数 ,比如 db.project.area 载入project表的area字段载入到上下文中
  • 根据context->fetch 获取的数据量,只会运行涉及到该运算的公式。所以虽然整个模型非常庞大 但是只有需要时才会运行相关的公式。
  • 如果某一运算涉及的公式非常多 rset()因为会检查变量的依赖会导致进行依赖检查耗费太多时间,建议 使用reset()重置后再进行运算。

使用

修改composer.json, (*5)

composer require vincentmi/ccm

//或者
手动修改项目的 composer.json文件

"require": {
        "vincentmi/ccm": "1.*"
}

更新依赖包, (*6)

composer update

测试代码, (*7)

<?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');

集成到laravel

添加provider \CCM\Laravel\ServiceProvider::class,configs/app.php ,添加 alias 'CCM'=>\CCM\Laravel\CCM::class., (*8)

使用, (*9)

CCM::set('a',1);
CCM::reg('b','$a + 10');

echo CCM::fetch('b');

示例代码

cd sample
php common_use.php
php index.php 
php depency_error.php //依赖错误检测

使用

根据天气和工作量调整冰淇淋价格 当当天安排给打卡同事的任务不饱和时以及气温比较高的时候调高冰淇淋的售价, (*10)

<?php
require __DIR__."/../vendor/autoload.php";
use CCM\Context;
$ctx = new \CCM\Context();

echo
$ctx->reg('temperature_rate' ,function($context,$level){

    $todayTemp = $context->get('todayTemp') ; // $todayTemp = fget('http://cnweathor.com/getToday')
    if($todayTemp > 30){
        return 0.2;
    }else if($todayTemp > 40){
        return 1;
    }else if($todayTemp < 25){
        return -0.8;
    }else{
        return 0;
    }
} )
    ->reg('workload_rate',function($context){
        $workload = $context->get('workload');
        $totalCheckin = $context->get('totalCheckin');
        $workloadRate = $workload/$totalCheckin;
        if( $workloadRate < 1){
            return 0.3;
        }else if($workloadRate < 0.5){
            return 0.5;
        }else if($workloadRate == 1){
            return 0;
        }else{
            return -0.2;
        }
    })
    ->reg('price' , '$org_price * (1 + $temperature_rate + $workload_rate)')
    ->set('org_price',3)
    ->set('totalCheckin',5)
    ->set('workload',isset($argv[1])? floatval($argv[1]):5)
    ->set('todayTemp',isset($argv[2])? floatval($argv[2]):25)
    ->fetch('price');

echo "\n";

The Versions

07/02 2018

dev-master

9999999-dev https://vnzmi.com/ccm

A simple common calculation model

  Sources   Download

MIT

The Requires

  • php >=5.5.0

 

The Development Requires

25/12 2017

1.0.16

1.0.16.0 https://vnzmi.com/ccm

A simple common calculation model

  Sources   Download

MIT

The Requires

  • php >=5.5.0

 

The Development Requires

25/12 2017

1.0.17

1.0.17.0 https://vnzmi.com/ccm

A simple common calculation model

  Sources   Download

MIT

The Requires

  • php >=5.5.0

 

The Development Requires

20/12 2017

1.0.15

1.0.15.0 https://vnzmi.com/ccm

A simple common calculation model

  Sources   Download

MIT

The Requires

  • php >=5.5.0

 

The Development Requires

20/12 2017

1.0.14

1.0.14.0 https://vnzmi.com/ccm

A simple common calculation model

  Sources   Download

MIT

The Requires

  • php >=5.5.0

 

The Development Requires

18/12 2017

1.0.13

1.0.13.0 https://vnzmi.com/ccm

A simple common calculation model

  Sources   Download

MIT

The Requires

  • php >=5.5.0

 

The Development Requires

12/12 2017

1.0.12

1.0.12.0 https://vnzmi.com/ccm

A simple common calculation model

  Sources   Download

MIT

The Requires

  • php >=5.5.0

 

The Development Requires

06/12 2017

1.0.11

1.0.11.0 https://vnzmi.com/ccm

A simple common calculation model

  Sources   Download

MIT

The Requires

  • php >=5.5.0

 

The Development Requires

03/12 2017

1.0.10

1.0.10.0 https://vnzmi.com/ccm

A simple common calculation model

  Sources   Download

MIT

The Requires

  • php >=5.5.0

 

The Development Requires

03/12 2017

1.0.9

1.0.9.0 https://vnzmi.com/ccm

A simple common calculation model

  Sources   Download

MIT

The Requires

  • php >=5.5.0

 

The Development Requires

01/12 2017

1.0.8

1.0.8.0 https://vnzmi.com/ccm

A simple common calculation model

  Sources   Download

MIT

The Requires

  • php >=5.5.0

 

The Development Requires

01/12 2017

1.0.7

1.0.7.0 https://vnzmi.com/ccm

A simple common calculation model

  Sources   Download

MIT

The Requires

  • php >=5.5.0

 

The Development Requires

30/11 2017

1.0.5

1.0.5.0 https://vnzmi.com/ccm

A simple common calculation model

  Sources   Download

MIT

The Requires

  • php >=5.5.0

 

The Development Requires

30/11 2017

1.0.6

1.0.6.0 https://vnzmi.com/ccm

A simple common calculation model

  Sources   Download

MIT

The Requires

  • php >=5.5.0

 

The Development Requires

29/11 2017

1.0.4

1.0.4.0 https://vnzmi.com/ccm

A simple common calculation model

  Sources   Download

MIT

The Requires

  • php >=5.5.0

 

The Development Requires

23/11 2017

1.0.3

1.0.3.0 https://vnzmi.com/ccm

A simple common calculation model

  Sources   Download

MIT

The Requires

  • php >=5.5.0

 

The Development Requires

22/11 2017

1.0.1

1.0.1.0 https://vnzmi.com/ccm

A simple common calculation model

  Sources   Download

MIT

The Requires

  • php >=5.5.0

 

The Development Requires

20/11 2017

1.0

1.0.0.0

A simple common calculation model

  Sources   Download

MIT

The Requires

  • php >=5.5.0