Completed
Pull Request — master (#15)
by
unknown
02:55
created

BankProvider   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 45
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Test Coverage

Coverage 66.67%

Importance

Changes 0
Metric Value
wmc 2
lcom 0
cbo 2
dl 0
loc 45
ccs 4
cts 6
cp 0.6667
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 5 1
banks() 0 1 ?
A getBankLogo() 0 4 1
1
<?php
2
/**
3
 * @link https://github.com/yiiviet/yii2-payment
4
 * @copyright Copyright (c) 2017 Yii Viet
5
 * @license [New BSD License](http://www.opensource.org/licenses/bsd-license.php)
6
 */
7
8
9
namespace nhuluc\payment;
10
11
use yii\base\BaseObject;
12
use yii\base\NotSupportedException;
13
14
/**
15
 * Mẫu trừu tượng BankProviderInterface cung cấp các phương thức lấy thông tin ngân hàng như tên, logo, id.
16
 *
17
 * @author Nhu Luc <[email protected]>
18
 * @since 1.0.3
19
 */
20
abstract class BankProvider extends BaseObject
21
{
22
    /**
23
     * @var mixed loại ngân hàng muốn lấy ví dụ visa/master, nội địa, thanh toán chuyển khoản... Nếu không thiết lập đồng nghĩa lấy toàn bộ không lọc.
24
     */
25
    public $type;
26
27
    /**
28
     * @var PaymentGatewayInterface xem phương thức [[__construct()]].
29
     * @see [[__construct()]]
30
     */
31
    protected $gateway;
32
33
    /**
34
     * BankProvider constructor.
35
     *
36
     * @param PaymentGatewayInterface $gateway đối tượng kết nối đến cổng thanh toán để cung cấp các thông tin cần thiết khi lấy danh sách ngân hàng.
37
     * @param array $config mảng thiết lập.
38
     */
39 9
    public function __construct(PaymentGatewayInterface $gateway, array $config = [])
40
    {
41 9
        $this->gateway = $gateway;
42 9
        parent::__construct($config);
43 9
    }
44
45
    /**
46
     * Phương thức hổ trợ lấy danh sách ngân hàng theo thuộc tính [[type]].
47
     *
48
     * @return array có khóa là mã ngân hàng và giá trị là tên ngân hàng.
49
     */
50
    abstract public function banks(): array;
51
52
    /**
53
     * Phương thức hổ trợ lấy logo ngân hàng thông qua id.
54
     *
55
     * @param mixed $bankId của ngân hàng.
56
     * @return string url logo absolute
57
     * @throws NotSupportedException
58
     */
59
    public function getBankLogo($bankId): string
60
    {
61
        throw new NotSupportedException('This method doesn\'t supported by default!');
62
    }
63
64
}
65