Moved the bcmath wrapper method to the helper class for all over use

This commit is contained in:
Llewellyn van der Merwe 2018-08-30 23:22:48 +02:00
parent b3c4414320
commit f3539185ab
No known key found for this signature in database
GPG Key ID: CAD7B16D27AF28C5
7 changed files with 111 additions and 49 deletions

View File

@ -129,7 +129,7 @@ Watch the [proposed development workflow](https://vdm.bz/proposed-development-wo
+ *Version*: 2.9.0 + *Version*: 2.9.0
+ *Copyright*: Copyright (C) 2015 - 2018 Vast Development Method. All rights reserved. + *Copyright*: Copyright (C) 2015 - 2018 Vast Development Method. All rights reserved.
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt + *License*: GNU General Public License version 2 or later; see LICENSE.txt
+ *Line count*: **192775** + *Line count*: **192879**
+ *Field count*: **1081** + *Field count*: **1081**
+ *File count*: **1273** + *File count*: **1273**
+ *Folder count*: **201** + *Folder count*: **201**

View File

@ -129,7 +129,7 @@ Watch the [proposed development workflow](https://vdm.bz/proposed-development-wo
+ *Version*: 2.9.0 + *Version*: 2.9.0
+ *Copyright*: Copyright (C) 2015 - 2018 Vast Development Method. All rights reserved. + *Copyright*: Copyright (C) 2015 - 2018 Vast Development Method. All rights reserved.
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt + *License*: GNU General Public License version 2 or later; see LICENSE.txt
+ *Line count*: **192775** + *Line count*: **192879**
+ *Field count*: **1081** + *Field count*: **1081**
+ *File count*: **1273** + *File count*: **1273**
+ *Folder count*: **201** + *Folder count*: **201**

View File

@ -523,7 +523,7 @@ class Compiler extends Infusion
$lineBites[$lineNumber] = (int) mb_strlen($lineContent, '8bit'); $lineBites[$lineNumber] = (int) mb_strlen($lineContent, '8bit');
if (!$found) if (!$found)
{ {
$bites = (int) $this->bcmath('add', $lineBites[$lineNumber], $bites); $bites = (int) ComponentbuilderHelper::bcmath('add', $lineBites[$lineNumber], $bites);
} }
if ($found && !$foundEnd) if ($found && !$foundEnd)
{ {
@ -659,12 +659,12 @@ class Compiler extends Infusion
// Add the data // Add the data
fwrite($fpFile, $data); fwrite($fpFile, $data);
// truncate file at the end of the data that was added // truncate file at the end of the data that was added
$remove = $this->bcmath('add', $position, mb_strlen($data, '8bit')); $remove = ComponentbuilderHelper::bcmath('add', $position, mb_strlen($data, '8bit'));
ftruncate($fpFile, $remove); ftruncate($fpFile, $remove);
// check if this was a replacement of data // check if this was a replacement of data
if ($replace) if ($replace)
{ {
$position = $this->bcmath('add', $position, $replace); $position = ComponentbuilderHelper::bcmath('add', $position, $replace);
} }
// move to the position of the data that should remain below the new data // move to the position of the data that should remain below the new data
fseek($fpTemp, $position); fseek($fpTemp, $position);

View File

@ -6158,46 +6158,4 @@ class Get
return false; return false;
} }
/**
* bc math wrapper (very basic not for accounting)
*
* @param string $type The type bc math
* @param int $val1 The first value
* @param int $val2 The second value
*
* @return int
*
*/
public function bcmath($type, $val1, $val2)
{
// build function name
$function = 'bc' . $type;
// use the bcmath function of available
if (function_exists($function))
{
return $function($val1, $val2);
}
// if function does not exist we use +-*/ operators (since it realy not that serious)
switch ($type)
{
// Multiply two numbers
case 'mul':
return round($val1 * $val2);
break;
// Divide of two numbers
case 'div':
return round($val1 / $val2);
break;
// Adding two numbers
case 'add':
return round($val1 + $val2);
break;
// Subtract one number from the other
case 'sub':
return round($val1 - $val2);
break;
}
return false;
}
} }

View File

@ -1122,8 +1122,8 @@ class Infusion extends Interpretation
if ($this->langTag !== $tag) if ($this->langTag !== $tag)
{ {
$langStringNr = count($languageStrings); $langStringNr = count($languageStrings);
$langStringSum = $this->bcmath('mul', $langStringNr, 100); $langStringSum = ComponentbuilderHelper::bcmath('mul', $langStringNr, 100);
$percentage = $this->bcmath('div', $langStringSum, $mainLangLoader[$area]); $percentage = ComponentbuilderHelper::bcmath('div', $langStringSum, $mainLangLoader[$area]);
$stringNAme = ($langStringNr == 1) ? '(string ' . $tag . ' translated)' : '(strings ' . $tag . ' translated)'; $stringNAme = ($langStringNr == 1) ? '(string ' . $tag . ' translated)' : '(strings ' . $tag . ' translated)';
// force load if debug lines are added // force load if debug lines are added
if (!$this->debugLinenr) if (!$this->debugLinenr)

View File

@ -2508,6 +2508,58 @@ abstract class ComponentbuilderHelper
} }
} }
/**
* bc math wrapper (very basic not for accounting)
*
* @param string $type The type bc math
* @param int $val1 The first value
* @param int $val2 The second value
* @param int $scale The scale value
*
* @return int
*
*/
public static function bcmath($type, $val1, $val2, $scale = 0)
{
// build function name
$function = 'bc' . $type;
// use the bcmath function of available
if (function_exists($function))
{
return $function($val1, $val2, $scale);
}
// if function does not exist we use +-*/ operators (fallback - not ideal)
switch ($type)
{
// Multiply two numbers
case 'mul':
return (string) round($val1 * $val2, $scale);
break;
// Divide of two numbers
case 'div':
return (string) round($val1 / $val2, $scale);
break;
// Adding two numbers
case 'add':
return (string) round($val1 + $val2, $scale);
break;
// Subtract one number from the other
case 'sub':
return (string) round($val1 - $val2, $scale);
break;
// Raise an arbitrary precision number to another
case 'pow':
return (string) round(pow($val1, $val2), $scale);
break;
// Compare two arbitrary precision numbers
case 'comp':
return (round($val1,2) == round($val2,2));
break;
}
return false;
}
/** /**
* the locker * the locker
* *

View File

@ -2508,6 +2508,58 @@ abstract class ComponentbuilderHelper
} }
} }
/**
* bc math wrapper (very basic not for accounting)
*
* @param string $type The type bc math
* @param int $val1 The first value
* @param int $val2 The second value
* @param int $scale The scale value
*
* @return int
*
*/
public static function bcmath($type, $val1, $val2, $scale = 0)
{
// build function name
$function = 'bc' . $type;
// use the bcmath function of available
if (function_exists($function))
{
return $function($val1, $val2, $scale);
}
// if function does not exist we use +-*/ operators (fallback - not ideal)
switch ($type)
{
// Multiply two numbers
case 'mul':
return (string) round($val1 * $val2, $scale);
break;
// Divide of two numbers
case 'div':
return (string) round($val1 / $val2, $scale);
break;
// Adding two numbers
case 'add':
return (string) round($val1 + $val2, $scale);
break;
// Subtract one number from the other
case 'sub':
return (string) round($val1 - $val2, $scale);
break;
// Raise an arbitrary precision number to another
case 'pow':
return (string) round(pow($val1, $val2), $scale);
break;
// Compare two arbitrary precision numbers
case 'comp':
return (round($val1,2) == round($val2,2));
break;
}
return false;
}
/** /**
* the locker * the locker
* *