Laravel에서 통화 다루기
4668 단어 opensourcelaravelphp
데이터베이스에 통화를 저장하는 방법에 대한 몇 가지 다른 솔루션 중에서 내가 선택한 것은 항상 정수로 센트 단위로 저장하는 것입니다. (다른 방법을 선호하는 경우 지금 돌아서십시오)
센트 단위로 저장하면 부동 소수점 처리와 같은 많은 문제가 해결되지만 변수가 어떤 상태인지 기억해야 하는 새로운 문제가 발생합니다. 실수로 통화를 USD 형식으로 저장하거나 센트를 센트로 변환하는 경우가 많습니다. 역시나 너무 높다. 또한 끊임없이 앞뒤로 변환하는 것은 꽤 빨리 오래되고 우리 모두 같은 것을 반복해서 쓰는 것을 싫어하지 않습니까?
내가 말하는 것을 보여 드리겠습니다.
$currency = 1;
$currencyInCents = $currency * 100;
$someFeeRate = 0.12;
$currencyInCentsWithFee = $currencyInCents * $someFeeRate;
$model = Model::create([
'amount' => $currencyInCentsWithFee
]);
// $model->amount -
//I already lost what format this was in may be I have a bad memory
return response()->json([
'currency' => '$'.number_format($model->amount / 100, 2)
]);
내 변수에
"inCents"
를 몇 번이나 써야 했는지 아세요?물론 나는 이 예에서 약간 과장하고 있지만 일단 더 많은 계산 수준이 있으면 상황이 점점 더 나빠집니다.
또한 프로젝트 내의 다음 개발자가 방금 수행한 작업과 완전히 다른 작업을 수행할 가능성이 높습니다.
솔루션으로 우리는 통화를 위한 간단한 패키지를 생각해 냈습니다.
https://github.com/Kodeas/currency
$currency = Currency::fromUsd(1);
$someFeeRate = 0.12;
$currencyWithFee = Currency::fromCents($currency->inCents() * $someFeeRate);
//model has currency as a cast of Currency::class
$model = Model::create([
'amount' => $currencyWithFee
]);
//$model->amount -
//this is now an instance of Currency::class so it is in whatever format you wish
return response()->json([
'currency' => $model->amount->toReadable('$')
]);
currency
클래스는 작성하는 개발자가 누구인지에 관계없이 전체 앱에서 통화 작업을 표준화하기 위한 캐스트로 사용됩니다. 귀하의 통화는 항상 센트 단위로 저장되며 운영 중 귀하의 통화가 어떤 상태였는지 절대 잊지 못할 것입니다.너무 단순한 것에 대해 패키지를 추가하는 것에 대해 회의적일 수 있다는 점도 감사합니다. 따라서 자신만의 패키지를 만들 수 있도록 패키지가 어떻게 만들어졌는지도 설명합니다.
Laravel을 사용하는 동안 대부분의 통화 문제에 대한 훌륭하고 빠른 솔루션이 있습니다.
추가 사항이 있으면 패키지에 자유롭게 기여하고 이것이 도움이 되었다면 좋아요와 함께 ❤️를 보여주세요.
Reference
이 문제에 관하여(Laravel에서 통화 다루기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kodeas/dealing-with-currency-in-laravel-32i텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)