your mama
This commit is contained in:
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
vendor
|
||||||
36
composer.json
Normal file
36
composer.json
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
{
|
||||||
|
"name": "mirzaev/currencies",
|
||||||
|
"description": "Library for easy currencies support",
|
||||||
|
"homepage": "https://git.svoboda.works/mirzaev/currencies",
|
||||||
|
"type": "library",
|
||||||
|
"keywords": [
|
||||||
|
"currencies"
|
||||||
|
],
|
||||||
|
"readme": "README.md",
|
||||||
|
"license": "WTFPL",
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Arsen Mirzaev Tatyano-Muradovich",
|
||||||
|
"email": "arsen@mirzaev.sexy",
|
||||||
|
"homepage": "https://mirzaev.sexy",
|
||||||
|
"role": "Creator"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://git.svoboda.works/mirzaev/currencies/issues"
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": "^8.4",
|
||||||
|
"mirzaev/languages": "^1.0"
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"mirzaev\\currencies\\": "mirzaev/currencies/system"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload-dev": {
|
||||||
|
"psr-4": {
|
||||||
|
"mirzaev\\currencies\\tests\\": "mirzaev/currencies/tests"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
71
mirzaev/currencies/system/currency.php
Normal file
71
mirzaev/currencies/system/currency.php
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace mirzaev\currencies;
|
||||||
|
|
||||||
|
// Library for languages
|
||||||
|
use mirzaev\languages\language;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Types of currencies by ISO 4217 standart
|
||||||
|
*
|
||||||
|
* @package mirzaev\currencies
|
||||||
|
*
|
||||||
|
* @license http://www.wtfpl.net/ Do What The Fuck You Want To Public License
|
||||||
|
* @author Arsen Mirzaev Tatyano-Muradovich <arsen@mirzaev.sexy>
|
||||||
|
*/
|
||||||
|
enum currency
|
||||||
|
{
|
||||||
|
case usd;
|
||||||
|
case rub;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Label
|
||||||
|
*
|
||||||
|
* Initialize label of the currency
|
||||||
|
*
|
||||||
|
* @param language|null $language Language into which to translate
|
||||||
|
*
|
||||||
|
* @return string Translated label of the currency
|
||||||
|
*
|
||||||
|
* @todo
|
||||||
|
* 1. More currencies
|
||||||
|
* 2. suck my bolls
|
||||||
|
* 3. Cases???
|
||||||
|
*/
|
||||||
|
public function label(?language $language = language::en): string
|
||||||
|
{
|
||||||
|
// Exit (success)
|
||||||
|
return match ($this) {
|
||||||
|
currency::usd => match ($language) {
|
||||||
|
language::en => 'Dollar',
|
||||||
|
language::ru => 'Доллар'
|
||||||
|
},
|
||||||
|
currency::rub => match ($language) {
|
||||||
|
language::en => 'Ruble',
|
||||||
|
language::ru => 'Рубль'
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Symbol
|
||||||
|
*
|
||||||
|
* Initialize symbol of the currency
|
||||||
|
*
|
||||||
|
* @return string Symbol of the currency
|
||||||
|
*
|
||||||
|
* @todo
|
||||||
|
* 1. More currencies
|
||||||
|
*/
|
||||||
|
public function symbol(): string
|
||||||
|
{
|
||||||
|
// Exit (success)
|
||||||
|
return match ($this) {
|
||||||
|
currency::usd => '$',
|
||||||
|
currency::rub => '₽'
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Reference in New Issue
Block a user