Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Making life easier while writing complex math formulas, take a breath
PHP
branch: master
Failed to load latest commit information.
src/Rezzza/Formulate
tests/units/Rezzza/Formulate
.gitignore Working with hoa\math, exit exprlib
.travis.yml
LICENCE
README.md
composer.json

README.md

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('subformula1', '({{ 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
Something went wrong with that request. Please try again.