nbykov / calculate-bundle
Symfony Calculate Bundle
dev-master
2019-09-04 15:19 UTC
Requires
- php: ^7.2
- sensio/framework-extra-bundle: ^5.4
- symfony/config: ^4.3
- symfony/framework-bundle: ^4.3
Requires (Dev)
This package is auto-updated.
Last update: 2024-05-05 02:01:49 UTC
README
Installation
1. Install bundle via composer: composer require nbykov/calculate-bundle
2. Add route:
calculate:
resource: "@CalculateBundle/Controller/CalculateController.php"
prefix: /
type: annotation
3. Create your own service like (src/Service/Calculate.php
):
<?php
namespace App\Service;
use nbykov\CalculateBundle\Entity\LocalExpression;
use nbykov\CalculateBundle\Service\CalculateServiceInterface;
class CalculateService implements CalculateServiceInterface
{
public function calculate(string $expression): float
{
$expression = new LocalExpression($expression);
return $expression->calculate();
}
}
Usage
Simply send a POST-request to /calculate
like:
POST /calculate HTTP/1.1
Host: <your host>
Content-Type: application/json
Accept: */*
Cache-Control: no-cache
Accept-Encoding: gzip, deflate
Content-Length: 34
Connection: keep-alive
cache-control: no-cache
{
"expression" : "(10*2-6)/3+5"
}
And you will receive a response like:
{
"message": "Expression should consist of digits, dots, brackets and math operations"
}
or:
{
"result": 8
}
Extra
You can calculate result of expressions chain:
$calculator = new ExpressionCalculator();
$result = $calculator->add(new LocalExpression('...'))
->divide(new LocalExpression('...'))
->multiply(new LocalExpression('...'))
->calculate();