[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: AbstractMoney.php
<?php declare(strict_types=1); namespace Brick\Money; use Brick\Money\Exception\MoneyMismatchException; use Brick\Math\BigNumber; use Brick\Math\RoundingMode; use Brick\Math\Exception\MathException; use Brick\Math\Exception\RoundingNecessaryException; /** * Base class for Money and RationalMoney. */ abstract class AbstractMoney implements MoneyContainer { /** * @return BigNumber */ abstract public function getAmount(); /** * @return Currency */ abstract public function getCurrency() : Currency; /** * Converts this money to a Money in the given Context. * * @psalm-param RoundingMode::* $roundingMode * * @param Context $context The context. * @param int $roundingMode The rounding mode, if necessary. * * @return Money * * @throws RoundingNecessaryException If RoundingMode::UNNECESSARY is used but rounding is necessary. */ final public function to(Context $context, int $roundingMode = RoundingMode::UNNECESSARY) : Money { return Money::create($this->getAmount(), $this->getCurrency(), $context, $roundingMode); } /** * Required by interface MoneyContainer. * * @psalm-return array<string, BigNumber> * * @return BigNumber[] */ final public function getAmounts() : array { return [ $this->getCurrency()->getCurrencyCode() => $this->getAmount() ]; } /** * Returns the sign of this money. * * @return int -1 if the number is negative, 0 if zero, 1 if positive. */ final public function getSign() : int { return $this->getAmount()->getSign(); } /** * Returns whether this money has zero value. * * @return bool */ final public function isZero() : bool { return $this->getAmount()->isZero(); } /** * Returns whether this money has a negative value. * * @return bool */ final public function isNegative() : bool { return $this->getAmount()->isNegative(); } /** * Returns whether this money has a negative or zero value. * * @return bool */ final public function isNegativeOrZero() : bool { return $this->getAmount()->isNegativeOrZero(); } /** * Returns whether this money has a positive value. * * @return bool */ final public function isPositive() : bool { return $this->getAmount()->isPositive(); } /** * Returns whether this money has a positive or zero value. * * @return bool */ final public function isPositiveOrZero() : bool { return $this->getAmount()->isPositiveOrZero(); } /** * Compares this money to the given amount. * * @param AbstractMoney|BigNumber|int|float|string $that * * @return int [-1, 0, 1] if `$this` is less than, equal to, or greater than `$that`. * * @throws MathException If the argument is an invalid number. * @throws MoneyMismatchException If the argument is a money in a different currency. */ final public function compareTo($that) : int { return $this->getAmount()->compareTo($this->getAmountOf($that)); } /** * Returns whether this money is equal to the given amount. * * @param AbstractMoney|BigNumber|int|float|string $that * * @return bool * * @throws MathException If the argument is an invalid number. * @throws MoneyMismatchException If the argument is a money in a different currency. */ final public function isEqualTo($that) : bool { return $this->getAmount()->isEqualTo($this->getAmountOf($that)); } /** * Returns whether this money is less than the given amount. * * @param AbstractMoney|BigNumber|int|float|string $that * * @return bool * * @throws MathException If the argument is an invalid number. * @throws MoneyMismatchException If the argument is a money in a different currency. */ final public function isLessThan($that) : bool { return $this->getAmount()->isLessThan($this->getAmountOf($that)); } /** * Returns whether this money is less than or equal to the given amount. * * @param AbstractMoney|BigNumber|int|float|string $that * * @return bool * * @throws MathException If the argument is an invalid number. * @throws MoneyMismatchException If the argument is a money in a different currency. */ final public function isLessThanOrEqualTo($that) : bool { return $this->getAmount()->isLessThanOrEqualTo($this->getAmountOf($that)); } /** * Returns whether this money is greater than the given amount. * * @param AbstractMoney|BigNumber|int|float|string $that * * @return bool * * @throws MathException If the argument is an invalid number. * @throws MoneyMismatchException If the argument is a money in a different currency. */ final public function isGreaterThan($that) : bool { return $this->getAmount()->isGreaterThan($this->getAmountOf($that)); } /** * Returns whether this money is greater than or equal to the given amount. * * @param AbstractMoney|BigNumber|int|float|string $that * * @return bool * * @throws MathException If the argument is an invalid number. * @throws MoneyMismatchException If the argument is a money in a different currency. */ final public function isGreaterThanOrEqualTo($that) : bool { return $this->getAmount()->isGreaterThanOrEqualTo($this->getAmountOf($that)); } /** * Returns whether this money's amount and currency are equal to those of the given money. * * Unlike isEqualTo(), this method only accepts a money, and returns false if the given money is in another * currency, instead of throwing a MoneyMismatchException. * * @param AbstractMoney $that * * @return bool */ final public function isAmountAndCurrencyEqualTo(AbstractMoney $that) : bool { return $this->getAmount()->isEqualTo($that->getAmount()) && $this->getCurrency()->is($that->getCurrency()); } /** * Returns the amount of the given parameter. * * If the parameter is a money, its currency is checked against this money's currency. * * @param AbstractMoney|BigNumber|int|float|string $that A money or amount. * * @return BigNumber|int|float|string * * @throws MoneyMismatchException If currencies don't match. */ final protected function getAmountOf($that) { if ($that instanceof AbstractMoney) { if (! $that->getCurrency()->is($this->getCurrency())) { throw MoneyMismatchException::currencyMismatch($this->getCurrency(), $that->getCurrency()); } return $that->getAmount(); } return $that; } }
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: server1.winmanyltd.com
Server IP: 203.161.60.52
PHP Version: 8.3.27
Server Software: Apache
System: Linux server1.winmanyltd.com 4.18.0-553.22.1.el8_10.x86_64 #1 SMP Tue Sep 24 05:16:59 EDT 2024 x86_64
HDD Total: 117.98 GB
HDD Free: 59.88 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
Yes
git:
Yes
User Info
Username: eliosofonline
User ID (UID): 1002
Group ID (GID): 1003
Script Owner UID: 1002
Current Dir Owner: 1002