Upgrade Notes#
2.x to 3.0#
setFunctions()
andaddFunctions()
no longer accept callables, useaddFunctionsFromCallables()
addFunctionsFromCallables()
has$lazy
parameter that may overshadow a function calledlazy()
if you defined one
<?php use Arokettu\ArithmeticParser\Config; $config = Config::default(); // 2.x: $config->addFunctions( myfunc2: fn ($a) => $a ** 2, myfunc3: fn ($a) => $a ** 3, ); // 3.0: $config->addFunctionsFromCallables( myfunc2: fn ($a) => $a ** 2, myfunc3: fn ($a) => $a ** 3, ); // 2.x: $config->setFunctions( myfunc2: fn ($a) => $a ** 2, myfunc3: fn ($a) => $a ** 3, ); // 3.x: $config->clearFunctions(); $config->addFunctionsFromCallables( myfunc2: fn ($a) => $a ** 2, myfunc3: fn ($a) => $a ** 3, );
CalcCallException
is no longer the only exception that Calculator throws:<?php use Arokettu\ArithmeticParser\Calculator; use Arokettu\ArithmeticParser\Exceptions\CalcCallException; use Arokettu\ArithmeticParser\Exceptions\CalcConfigException; use Arokettu\ArithmeticParser\Exceptions\CalculatorException; // 2.x: try { Calculator::evaluate('...', ...); } catch (CalcCallException $e) { // everything here except for ArgumentCountError and TypeError } // 3.0: try { Calculator::evaluate('...', ...); } catch (CalcCallException $e) { // runtime exceptions (undefined funcs and undefined vars) } catch (CalcConfigException $e) { // generally parser errors and invalid variable lists } catch (CalculatorException $e) { // catch-all like CalcCallException was in 2.x }
1.x to 2.0#
Comma (
,
) can no longer be used as an operatorInvalidArgumentException
was replaced withDomainException
Absolute values of
Config\BinaryOperator::PRIORITY_*
constants changed