Making life easier while writing complex math formulas, take a breath
# composer.json
"rezzza/formulate": "dev-master"
# shell
php composer.phar update # or install
<?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
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.
php composer install --dev
bin/atoum -d tests/units
- Add more tests