Skip to content

Commit e5b2102

Browse files
committed
– the lambdas are no longer stored in the GLOBAL array, but served from a dedicated class instead
1 parent 717a9a3 commit e5b2102

12 files changed

+62
-33
lines changed

src/Calculators/AnnuityCalculator.php

+4-3
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
use Exception;
77
use FinanCalc\Constants\AnnuityPaymentTypes;
88
use FinanCalc\Constants\AnnuityValueTypes;
9+
use FinanCalc\Constants\Lambdas;
910
use FinanCalc\Interfaces\Calculator\CalculatorAbstract;
1011
use FinanCalc\Utils\Helpers;
1112
use FinanCalc\Utils\MathFuncs;
@@ -72,14 +73,14 @@ function __construct($annuitySinglePaymentAmount,
7273
* @param $annuitySinglePaymentAmount
7374
*/
7475
public function setAnnuitySinglePaymentAmount($annuitySinglePaymentAmount) {
75-
$this->setProperty("annuitySinglePaymentAmount", $annuitySinglePaymentAmount, $GLOBALS["FINANCALC_FUNC_CHECK_IF_POSITIVE"]);
76+
$this->setProperty("annuitySinglePaymentAmount", $annuitySinglePaymentAmount, Lambdas::checkIfPositive());
7677
}
7778

7879
/**
7980
* @param $annuityNoOfCompoundingPeriods
8081
*/
8182
public function setAnnuityNoOfCompoundingPeriods($annuityNoOfCompoundingPeriods) {
82-
$this->setProperty("annuityNoOfCompoundingPeriods", $annuityNoOfCompoundingPeriods, $GLOBALS["FINANCALC_FUNC_CHECK_IF_NOT_NEGATIVE"]);
83+
$this->setProperty("annuityNoOfCompoundingPeriods", $annuityNoOfCompoundingPeriods, Lambdas::checkIfNotNegative());
8384

8485
if ($this->annuityPeriodLength !== null) {
8586
$this->setAnnuityPeriodLength($this->annuityPeriodLength);
@@ -103,7 +104,7 @@ public function setAnnuityPeriodLength(TimeSpan $annuityPeriodLength) {
103104
* @param $annuityInterest
104105
*/
105106
public function setAnnuityInterest($annuityInterest) {
106-
$this->setProperty("annuityInterest", $annuityInterest, $GLOBALS["FINANCALC_FUNC_CHECK_IF_POSITIVE"]);
107+
$this->setProperty("annuityInterest", $annuityInterest, Lambdas::checkIfPositive());
107108
}
108109

109110
/**

src/Calculators/BondDurationCalculator.php

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace FinanCalc\Calculators {
44

5+
use FinanCalc\Constants\Lambdas;
56
use FinanCalc\Interfaces\Calculator\BondCalculatorAbstract;
67
use FinanCalc\Utils\MathFuncs;
78

@@ -66,7 +67,7 @@ function __construct($bondFaceValue,
6667
* @param $bondAnnualYield
6768
*/
6869
public function setBondAnnualYield($bondAnnualYield) {
69-
$this->setProperty("bondAnnualYield", $bondAnnualYield, $GLOBALS["FINANCALC_FUNC_CHECK_IF_POSITIVE"]);
70+
$this->setProperty("bondAnnualYield", $bondAnnualYield, Lambdas::checkIfPositive());
7071
}
7172

7273
/**

src/Calculators/BondFairValueCalculator.php

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace FinanCalc\Calculators {
44

5+
use FinanCalc\Constants\Lambdas;
56
use FinanCalc\Interfaces\Calculator\BondCalculatorAbstract;
67
use FinanCalc\Utils\MathFuncs;
78

@@ -61,7 +62,7 @@ function __construct($bondFaceValue,
6162
* @param $bondVIR
6263
*/
6364
public function setBondVIR($bondVIR) {
64-
$this->setProperty("bondVIR", $bondVIR, $GLOBALS["FINANCALC_FUNC_CHECK_IF_POSITIVE"]);
65+
$this->setProperty("bondVIR", $bondVIR, Lambdas::checkIfPositive());
6566
}
6667

6768
/**

src/Calculators/BondYTMCalculator.php

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace FinanCalc\Calculators {
44

5+
use FinanCalc\Constants\Lambdas;
56
use FinanCalc\Interfaces\Calculator\BondCalculatorAbstract;
67
use FinanCalc\Utils\MathFuncs;
78

@@ -61,7 +62,7 @@ function __construct($bondFaceValue,
6162
* @param $bondMarketValue
6263
*/
6364
public function setBondMarketValue($bondMarketValue) {
64-
$this->setProperty("bondMarketValue", $bondMarketValue, $GLOBALS["FINANCALC_FUNC_CHECK_IF_POSITIVE"]);
65+
$this->setProperty("bondMarketValue", $bondMarketValue, Lambdas::checkIfPositive());
6566
}
6667

6768
/**

src/Calculators/DebtAmortizator.php

+5-4
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace FinanCalc\Calculators {
44

55
use DateTime;
6+
use FinanCalc\Constants\Lambdas;
67
use FinanCalc\Interfaces\Calculator\CalculatorAbstract;
78
use FinanCalc\Utils\MathFuncs;
89
use FinanCalc\Utils\Time\TimeSpan;
@@ -70,21 +71,21 @@ function __construct($debtPrincipal,
7071
* @param $debtPrincipal
7172
*/
7273
private function setDebtPrincipalWithoutRecalculation($debtPrincipal) {
73-
$this->setProperty("debtPrincipal", $debtPrincipal, $GLOBALS["FINANCALC_FUNC_CHECK_IF_POSITIVE"]);
74+
$this->setProperty("debtPrincipal", $debtPrincipal, Lambdas::checkIfPositive());
7475
}
7576

7677
/**
7778
* @param $debtNoOfCompoundingPeriods
7879
*/
7980
private function setDebtNoOfCompoundingPeriodsWithoutRecalculation($debtNoOfCompoundingPeriods) {
80-
$this->setProperty("debtNoOfCompoundingPeriods", $debtNoOfCompoundingPeriods, $GLOBALS["FINANCALC_FUNC_CHECK_IF_POSITIVE"]);
81+
$this->setProperty("debtNoOfCompoundingPeriods", $debtNoOfCompoundingPeriods, Lambdas::checkIfPositive());
8182
}
8283

8384
/**
8485
* @param $debtInterest
8586
*/
8687
private function setDebtInterestWithoutRecalculation($debtInterest) {
87-
$this->setProperty("debtInterest", $debtInterest, $GLOBALS["FINANCALC_FUNC_CHECK_IF_POSITIVE"]);
88+
$this->setProperty("debtInterest", $debtInterest, Lambdas::checkIfPositive());
8889
}
8990

9091
/**
@@ -107,7 +108,7 @@ public function setDebtNoOfCompoundingPeriods($debtNoOfCompoundingPeriods) {
107108
* @param $debtPeriodLength
108109
*/
109110
public function setDebtPeriodLength(TimeSpan $debtPeriodLength) {
110-
$this->setProperty("debtPeriodLength", $debtPeriodLength, $GLOBALS["FINANCALC_FUNC_CHECK_IF_POSITIVE"]);
111+
$this->setProperty("debtPeriodLength", $debtPeriodLength, Lambdas::checkIfPositive());
111112
}
112113

113114
/**

src/Calculators/SimpleDiscountCalculator.php

+4-3
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace FinanCalc\Calculators {
44

5+
use FinanCalc\Constants\Lambdas;
56
use FinanCalc\Interfaces\Calculator\CalculatorAbstract;
67
use FinanCalc\Utils\MathFuncs;
78
use FinanCalc\Utils\Time\TimeSpan;
@@ -36,21 +37,21 @@ function __construct($amountDue,
3637
* @param $amountDue
3738
*/
3839
public function setAmountDue($amountDue) {
39-
$this->setProperty("amountDue", $amountDue, $GLOBALS["FINANCALC_FUNC_CHECK_IF_POSITIVE"]);
40+
$this->setProperty("amountDue", $amountDue, Lambdas::checkIfPositive());
4041
}
4142

4243
/**
4344
* @param $annualDiscountRate
4445
*/
4546
public function setAnnualDiscountRate($annualDiscountRate) {
46-
$this->setProperty("annualDiscountRate", $annualDiscountRate, $GLOBALS["FINANCALC_FUNC_CHECK_IF_POSITIVE"]);
47+
$this->setProperty("annualDiscountRate", $annualDiscountRate, Lambdas::checkIfPositive());
4748
}
4849

4950
/**
5051
* @param TimeSpan $time
5152
*/
5253
public function setTime(TimeSpan $time) {
53-
$this->setProperty("time", $time, $GLOBALS["FINANCALC_FUNC_CHECK_IF_POSITIVE"]);
54+
$this->setProperty("time", $time, Lambdas::checkIfPositive());
5455
}
5556

5657
/**

src/Calculators/SimpleInterestCalculator.php

+4-3
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace FinanCalc\Calculators {
44

55
use Exception;
6+
use FinanCalc\Constants\Lambdas;
67
use FinanCalc\Interfaces\Calculator\CalculatorAbstract;
78
use FinanCalc\Utils\MathFuncs;
89
use FinanCalc\Utils\Time\TimeSpan;
@@ -38,21 +39,21 @@ function __construct($principal,
3839
* @param $principal
3940
*/
4041
public function setPrincipal($principal) {
41-
$this->setProperty("principal", $principal, $GLOBALS["FINANCALC_FUNC_CHECK_IF_POSITIVE"]);
42+
$this->setProperty("principal", $principal, Lambdas::checkIfPositive());
4243
}
4344

4445
/**
4546
* @param $annualInterestRate
4647
*/
4748
public function setAnnualInterestRate($annualInterestRate) {
48-
$this->setProperty("annualInterestRate", $annualInterestRate, $GLOBALS["FINANCALC_FUNC_CHECK_IF_POSITIVE"]);
49+
$this->setProperty("annualInterestRate", $annualInterestRate, Lambdas::checkIfPositive());
4950
}
5051

5152
/**
5253
* @param TimeSpan $time
5354
*/
5455
public function setTime(TimeSpan $time) {
55-
$this->setProperty("time", $time, $GLOBALS["FINANCALC_FUNC_CHECK_IF_POSITIVE"]);
56+
$this->setProperty("time", $time, Lambdas::checkIfPositive());
5657
}
5758

5859
/**

src/Calculators/StockDividendDiscountModelCalculator.php

+3-2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace FinanCalc\Calculators {
44

55
use Exception;
6+
use FinanCalc\Constants\Lambdas;
67
use FinanCalc\Constants\StockDDMTypes;
78
use FinanCalc\Interfaces\Calculator\CalculatorAbstract;
89
use FinanCalc\Utils\Helpers;
@@ -69,14 +70,14 @@ public function setDividendDiscountModelType(StockDDMTypes $dividendDiscountMode
6970
* @param $stockVIR
7071
*/
7172
public function setStockVIR($stockVIR){
72-
$this->setProperty("stockVIR", $stockVIR, $GLOBALS["FINANCALC_FUNC_CHECK_IF_POSITIVE"]);
73+
$this->setProperty("stockVIR", $stockVIR, Lambdas::checkIfPositive());
7374
}
7475

7576
/**
7677
* @param $stockAnnualDividendsValue
7778
*/
7879
public function setStockAnnualDividendsValue($stockAnnualDividendsValue) {
79-
$this->setProperty("stockAnnualDividendsValue", $stockAnnualDividendsValue, $GLOBALS["FINANCALC_FUNC_CHECK_IF_POSITIVE"]);
80+
$this->setProperty("stockAnnualDividendsValue", $stockAnnualDividendsValue, Lambdas::checkIfPositive());
8081
}
8182

8283
/**

src/Calculators/StockInvestmentRatiosCalculator.php

+4-3
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace FinanCalc\Calculators {
44

5+
use FinanCalc\Constants\Lambdas;
56
use FinanCalc\Interfaces\Calculator\CalculatorAbstract;
67
use FinanCalc\Utils\MathFuncs;
78

@@ -47,21 +48,21 @@ function __construct($totalDividends,
4748
* @param $totalDividends
4849
*/
4950
public function setTotalDividends($totalDividends) {
50-
$this->setProperty("totalDividends", $totalDividends, $GLOBALS["FINANCALC_FUNC_CHECK_IF_POSITIVE"]);
51+
$this->setProperty("totalDividends", $totalDividends, Lambdas::checkIfPositive());
5152
}
5253

5354
/**
5455
* @param $earningsAfterTaxes
5556
*/
5657
public function setEarningsAfterTaxes($earningsAfterTaxes) {
57-
$this->setProperty("earningsAfterTaxes", $earningsAfterTaxes, $GLOBALS["FINANCALC_FUNC_CHECK_IF_POSITIVE"]);
58+
$this->setProperty("earningsAfterTaxes", $earningsAfterTaxes, Lambdas::checkIfPositive());
5859
}
5960

6061
/**
6162
* @param $noOfStocks
6263
*/
6364
public function setNoOfStocks($noOfStocks) {
64-
$this->setProperty("noOfStocks", $noOfStocks, $GLOBALS["FINANCALC_FUNC_CHECK_IF_POSITIVE"]);
65+
$this->setProperty("noOfStocks", $noOfStocks, Lambdas::checkIfPositive());
6566
}
6667

6768
/**

src/Constants/Lambdas.php

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<?php
2+
namespace FinanCalc\Constants {
3+
4+
use FinanCalc\Utils\Helpers;
5+
6+
/**
7+
* Class Lambdas
8+
* @package FinanCalc\Constants
9+
*/
10+
class Lambdas {
11+
12+
/**
13+
* @return \Closure
14+
*/
15+
public static function checkIfNotNegative() {
16+
return function($param) {
17+
Helpers::checkIfNotNegativeNumberOrThrowAnException($param);
18+
};
19+
}
20+
21+
/**
22+
* @return \Closure
23+
*/
24+
public static function checkIfPositive() {
25+
return function($param) {
26+
Helpers::checkIfPositiveNumberOrThrowAnException($param);
27+
};
28+
}
29+
30+
}
31+
}
32+

src/init/bootstrap.php

-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
<?php
22

33
require_once('autoloader.php');
4-
require_once('lambdas.php');
54

65
\FinanCalc\Utils\Config::init();

src/init/lambdas.php

-11
This file was deleted.

0 commit comments

Comments
 (0)