forked from joomla/Component-Builder
Moved the bcmath wrapper method to the helper class for all over use
This commit is contained in:
parent
b3c4414320
commit
f3539185ab
@ -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**
|
||||||
|
@ -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**
|
||||||
|
@ -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);
|
||||||
|
@ -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;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -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)
|
||||||
|
@ -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
|
||||||
*
|
*
|
||||||
|
@ -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
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user