Skip to content

Commit 9f624a6

Browse files
Release version 1.0.5
1 parent e20f1f7 commit 9f624a6

File tree

2 files changed

+15
-27
lines changed

2 files changed

+15
-27
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22

33
Tất cả lịch sử tiến trình phát triển thư viện
44

5+
# 1.0.5
6+
7+
- Thêm concern `NumberResolver`.
8+
59
# 1.0.4
610

711
- Cập nhật verify input tại phương thức `resolve` của lớp `Transfomer`.

src/Transformer.php

Lines changed: 11 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,15 @@
77

88
namespace PHPViet\NumberToWords;
99

10-
use InvalidArgumentException;
11-
use PHPViet\NumberToWords\Concerns\TripletsConverter;
12-
use PHPViet\NumberToWords\Concerns\TripletTransformer;
13-
1410
/**
1511
* @author Vuong Minh <vuongxuongminh@gmail.com>
1612
* @since 1.0.0
1713
*/
1814
class Transformer
1915
{
20-
use TripletsConverter;
21-
use TripletTransformer;
16+
use Concerns\NumberResolver;
17+
use Concerns\TripletsConverter;
18+
use Concerns\TripletTransformer;
2219

2320
/**
2421
* @var DictionaryInterface
@@ -28,7 +25,7 @@ class Transformer
2825
/**
2926
* Tạo đối tượng mới với từ điển chỉ định.
3027
*
31-
* @param DictionaryInterface $dictionary
28+
* @param DictionaryInterface $dictionary
3229
*/
3330
public function __construct(?DictionaryInterface $dictionary = null)
3431
{
@@ -42,12 +39,12 @@ public function __construct(?DictionaryInterface $dictionary = null)
4239
/**
4340
* Chuyển đổi số sang chữ số.
4441
*
45-
* @param int|float|string $number
42+
* @param int|float|string $number
4643
* @return string
4744
*/
4845
public function toWords($number): string
4946
{
50-
[$minus, $number, $decimal] = $this->resolve($number);
47+
[$minus, $number, $decimal] = $this->resolveNumber($number);
5148
$words = [];
5249
$words[] = $minus ? $this->dictionary->minus() : '';
5350

@@ -77,14 +74,14 @@ public function toWords($number): string
7774
* Chuyển đổi số sang chữ số kết hợp với đơn vị tiền tệ.
7875
*
7976
* @param $number
80-
* @param array|string[]|string $unit
77+
* @param array|string[]|string $unit
8178
* @return string
8279
*/
8380
public function toCurrency($number, $unit = 'đồng'): string
8481
{
8582
$unit = (array) $unit;
8683
$originNumber = $number;
87-
[$minus, $number, $decimal] = $this->resolve($number);
84+
[$minus, $number, $decimal] = $this->resolveNumber($number);
8885
$words = [];
8986

9087
if (0 === $decimal || ! isset($unit[1])) {
@@ -105,26 +102,13 @@ public function toCurrency($number, $unit = 'đồng'): string
105102
/**
106103
* Chia số truyền vào thành mảng bao gồm kiểu số âm hoặc dương, số nguyên và phân số.
107104
*
108-
* @param int|float|string $number
105+
* @param $number
109106
* @return array
107+
* @deprecated since 1.0.5 use [[resolveNumber()]] instead and it will be remove since 1.1.0.
110108
*/
111109
protected function resolve($number): array
112110
{
113-
if (! is_numeric($number)) {
114-
throw new InvalidArgumentException(sprintf('Number arg (`%s`) must be numeric!', $number));
115-
}
116-
117-
$number += 0; // trick xóa các số 0 lẻ sau cùng của phân số và xử lý kiểu số âm hoặc dương đối với input là chuỗi.
118-
$number = (string) $number;
119-
$minus = '-' === $number[0];
120-
121-
if (false !== strpos($number, '.')) {
122-
$numbers = explode('.', $number, 2);
123-
} else {
124-
$numbers = [$number, 0];
125-
}
126-
127-
return array_merge([$minus], array_map('abs', $numbers));
111+
return $this->resolveNumber($number);
128112
}
129113

130114
/**

0 commit comments

Comments
 (0)