rezzza/formulate

Making life easier while writing complex math formulas, take a breath

Installs: 21 683

Dependents: 2

Suggesters: 0

Stars: 11

Watchers: 5

Forks: 5

Open Issues: 1

Type: standalone

v1.0.6 2016-05-17 13:00 UTC

README

Build Status

Making life easier while writing complex math formulas, take a breath

Install via composer

# composer.json
"rezzza/formulate": "dev-master"
# shell
php composer.phar update # or install

Usage

<?php

use Rezzza\Formulate\Formula;

$formula = new Formula('{{ variable1 }} + {{ variable2 }}');
$formula->setParameter('variable1', 10);
$formula->setParameter('variable2', 13);

echo $formula->render(); // "10 + 13"

$formula->setIsCalculable(true);

echo $formula->render(); // "23"

// Works with sub formulas

$formula = new Formula('{{ subformula1 }} + {{ variable2 }}');
$formula->setSubFormula('subformula1', new Formula('({{ variable1 }} - {{ variable2 }} / 100)'));
$formula->setParameter('variable1', 10);
$formula->setParameter('variable2', 13);

echo $formula->render(); // (10 - 13 / 100) + 13

Mathematic operations

Works as above + constant Formula::CALCULABLE, it'll use Hoa\Math arithmetic grammar to evaluate your operation. Example:

use Rezzza\Formulate\Formula;

$formula = new Formula('{{ subformula1 }} + {{ variable2 }}');
$formula->setSubFormula('subformula1', new Formula('(30 / 2) * -10', Formula::CALCULABLE));
$formula->setParameter('variable2', '10');

echo $formula->render(); // -150 + 10

$formula->setIsCalculable(true);

echo $formula->render(); // -140

Look at Hoa Math repository.

Tests

php composer install --dev
bin/atoum -d tests/units

Todo

  • Add more tests