Skip to content

Commit 308bb19

Browse files
Added doc [skip ci]
1 parent 5eab820 commit 308bb19

File tree

1 file changed

+177
-0
lines changed

1 file changed

+177
-0
lines changed

README.md

Lines changed: 177 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,180 @@
88

99
Symfony number to words hổ trợ chuyển đổi số sang chữ số Tiếng Việt.
1010

11+
[![Latest Version on Packagist](https://img.shields.io/packagist/v/phpviet/symfony-number-to-words.svg?style=flat-square)](https://packagist.org/packages/phpviet/symfony-number-to-words)
12+
[![Build Status](https://img.shields.io/travis/phpviet/symfony-number-to-words/master.svg?style=flat-square)](https://travis-ci.org/phpviet/symfony-number-to-words)
13+
[![Quality Score](https://img.shields.io/scrutinizer/g/phpviet/symfony-number-to-words.svg?style=flat-square)](https://scrutinizer-ci.com/g/phpviet/symfony-number-to-words)
14+
[![StyleCI](https://styleci.io/repos/190297801/shield?branch=master)](https://styleci.io/repos/190297801)
15+
[![Total Downloads](https://img.shields.io/packagist/dt/phpviet/symfony-number-to-words.svg?style=flat-square)](https://packagist.org/packages/phpviet/symfony-number-to-words)
16+
17+
## Cài đặt
18+
19+
+ Cài đặt Symfony Number To Words thông qua [Composer](https://getcomposer.org):
20+
21+
```bash
22+
composer require phpviet/symfony-number-to-words
23+
```
24+
25+
+ Tiếp đến hãy khai báo bundle tại `config/bundles.php`:
26+
27+
```php
28+
// config/bundles.php
29+
30+
return [
31+
.....
32+
PHPViet\Symfony\NumberToWords\Bundle::class => ['all' => true]
33+
];
34+
```
35+
36+
## Cách sử dụng
37+
38+
### Các tính năng của extension:
39+
40+
- [`Chuyển đổi số sang chữ số`](#Chuyển-đổi-số-sang-chữ-số)
41+
- [`Chuyển đổi số sang tiền tệ`](#Chuyển-đổi-số-sang-tiền-tệ)
42+
- [`Thay cách đọc số`](#Thay-cách-đọc-số)
43+
44+
### Chuyển đổi số sang chữ số
45+
46+
+ Sử dụng thông service `n2w`:
47+
48+
```php
49+
// âm năm
50+
$container->get('n2w')->toWords(-5);
51+
52+
// năm
53+
$container->get('n2w')->toWords(5);
54+
55+
// năm phẩy năm
56+
$container->get('n2w')->toWords(5.5);
57+
```
58+
59+
+ Sử dụng trong `twig` với `n2w` filter:
60+
61+
```php
62+
// mười lăm
63+
{{ 15 | n2w }};
64+
65+
// một trăm linh năm
66+
{{ 105 | n2w }};
67+
68+
// hai mươi tư
69+
{{ 24 | n2w }};
70+
```
71+
72+
### Chuyển đổi số sang tiền tệ
73+
74+
+ Sử dụng thông qua service `n2w`:
75+
76+
```php
77+
// năm triệu sáu trăm chín mươi nghìn bảy trăm đồng
78+
$container->get('n2w')->toCurrency(5690700);
79+
```
80+
81+
+ Sử dụng trong `twig` với `n2c` filter:
82+
83+
```php
84+
// chín mươi lăm triệu năm trăm nghìn hai trăm đồng
85+
{{ 95500200 | n2c }};
86+
```
87+
88+
Ngoài ra ta còn có thể sử dụng đơn vị tiền tệ khác thông qua tham trị thứ 2 của phương thức
89+
`toCurrency` và filter `n2c` với mảng phần từ đầu tiên là đơn vị cho số nguyên và kế tiếp là đơn vị của phân số:
90+
91+
```php
92+
use N2W;
93+
94+
// sáu nghìn bảy trăm bốn mươi hai đô bảy xen
95+
$container->get('n2w')->toCurrency(6742.7, ['đô', 'xen']);
96+
97+
// chín nghìn bốn trăm chín mươi hai đô mười lăm xen
98+
{{ 9492.15 | n2c(['đô', 'xen']) }};
99+
```
100+
101+
### Thay cách đọc số
102+
103+
> Nếu như bạn cảm thấy cách đọc ở trên ổn rồi thì hãy bỏ qua bước này.
104+
105+
Đầu tiên để thay đổi cách đọc số bạn cần phải tạo file cấu hình `n2w.yaml` trong `config/packages` với nội dung sau:
106+
107+
```yaml
108+
n2w:
109+
defaults:
110+
dictionary: 'standard'
111+
dictionaries:
112+
standard: 'n2w_standard_dictionary'
113+
south: 'n2w_south_dictionary'
114+
```
115+
116+
Ngay bây giờ bạn hãy thử đổi default `standard` sang `south`, toàn bộ phương thức chuyển
117+
đổi số sang chữ số và tiền tệ sẽ đọc theo phong cách trong Nam:
118+
119+
```php
120+
// một trăm linh một => một trăm lẻ một
121+
$container->get('n2w')->toWords(101);
122+
123+
// một nghìn => một ngàn
124+
$container->get('n2w')->toWords(1000);
125+
126+
// hai mươi tư => hai mươi bốn
127+
$container->get('n2w')->toWords(24);
128+
129+
// một trăm hai mươi tư nghìn không trăm linh một đồng => một trăm hai mươi bốn ngàn không trăm lẻ một đồng
130+
$container->get('n2w')->toCurrency(124001);
131+
```
132+
133+
hoặc bạn muốn sử dụng linh động hơn thì hãy chỉ định từ điển:
134+
135+
```php
136+
// một trăm hai mươi tư nghìn không trăm linh một
137+
{{ 124001 | n2w }};
138+
139+
// một trăm hai mươi bốn ngàn không trăm lẻ một
140+
{{ 124001 | n2w('south') }};
141+
```
142+
143+
Nếu như bạn muốn thay đổi cách đọc theo ý bạn thì hãy tạo một lớp `Dictionary` kế thừa
144+
`PHPViet\NumberToWords\Dictionary` hoặc thực thi mẫu trừu tượng `PHPViet\NumberToWords\DictionaryInterface`:
145+
146+
```php
147+
use PHPViet\NumberToWords\Dictionary;
148+
use PHPViet\NumberToWords\Transformer;
149+
150+
class MyDictionary extends Dictionary {
151+
152+
/**
153+
* @inheritDoc
154+
*/
155+
public function specialTripletUnitFive(): string
156+
{
157+
return 'nhăm';
158+
}
159+
160+
}
161+
```
162+
163+
Sau đó đăng ký 1 service cho nó, ví dụ ta sẽ đặt service đại diện cho `MyDictionary` là `app.my`
164+
tiếp đến khai báo file `n2w.yaml` như sau:
165+
166+
```yaml
167+
n2w:
168+
defaults:
169+
dictionary: 'myDictionary'
170+
dictionaries:
171+
standard: 'n2w_standard_dictionary'
172+
south: 'n2w_south_dictionary'
173+
myDictionary: 'app.my'
174+
```
175+
176+
Và hãy thử ngay:
177+
178+
```php
179+
// mười nhăm
180+
$container->get('n2w')->toWords(15);
181+
```
182+
183+
## Dành cho nhà phát triển
184+
185+
Nếu như bạn cảm thấy extension còn thiếu sót hoặc sai sót và bạn muốn đóng góp để phát triển chung,
186+
chúng tôi rất hoan nghênh! Hãy tạo các `issue` để đóng góp ý tưởng cho phiên bản kế tiếp
187+
hoặc tạo `PR` để đóng góp. Cảm ơn!

0 commit comments

Comments
 (0)