Skip to content
forked from rezzza/Formulate

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

License

Notifications You must be signed in to change notification settings

anivon/Formulate

 
 

Repository files navigation

Formulate - PHP

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

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%