Skip to content

Commit 77b781e

Browse files
authored
Merge pull request #407 from bavix/develop
[7.x] Mainline
2 parents d93cc44 + b59f7f8 commit 77b781e

File tree

292 files changed

+7166
-7165
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

292 files changed

+7166
-7165
lines changed

.github/workflows/code-style.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
- name: Setup PHP
1818
uses: shivammathur/setup-php@v2
1919
with:
20-
php-version: 7.4
20+
php-version: 8.0
2121

2222
- name: Validate composer.json and composer.lock
2323
run: composer validate --strict

.github/workflows/deptrac.yaml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
name: deptrac
2+
3+
on:
4+
push:
5+
branches: [ master ]
6+
pull_request:
7+
branches: [ master ]
8+
9+
jobs:
10+
deptrac:
11+
runs-on: ubuntu-latest
12+
13+
steps:
14+
- name: Checkout
15+
uses: actions/checkout@v2
16+
17+
- name: Setup PHP
18+
uses: shivammathur/setup-php@v2
19+
with:
20+
php-version: 8.0
21+
22+
- name: Validate composer.json and composer.lock
23+
run: composer validate --strict
24+
25+
- name: Cache Composer packages
26+
id: composer-cache
27+
uses: actions/cache@v2
28+
with:
29+
path: vendor
30+
key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
31+
restore-keys: |
32+
${{ runner.os }}-php-
33+
34+
- name: Install dependencies
35+
run: composer install --prefer-dist --no-progress
36+
37+
- name: Install deptrac
38+
run: composer req --dev qossmic/deptrac-shim
39+
if: hashFiles('vendor/bin/deptrac') == ''
40+
41+
- name: Run deptrac
42+
run: php vendor/bin/deptrac analyse

.github/workflows/phpstan.yaml

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
name: phpstan
2+
3+
on:
4+
push:
5+
branches: [ master ]
6+
pull_request:
7+
branches: [ master ]
8+
9+
jobs:
10+
phpstan:
11+
runs-on: ubuntu-latest
12+
13+
steps:
14+
- name: Checkout
15+
uses: actions/checkout@v2
16+
17+
- name: Setup PHP
18+
uses: shivammathur/setup-php@v2
19+
with:
20+
php-version: 8.0
21+
22+
- name: Validate composer.json and composer.lock
23+
run: composer validate --strict
24+
25+
- name: Cache Composer packages
26+
id: composer-cache
27+
uses: actions/cache@v2
28+
with:
29+
path: vendor
30+
key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
31+
restore-keys: |
32+
${{ runner.os }}-php-
33+
34+
- name: Install dependencies
35+
run: composer install --prefer-dist --no-progress
36+
37+
- name: Run phpstan
38+
run: composer phpstan

.github/workflows/phpunits.yaml

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ env:
1515
jobs:
1616
units:
1717
runs-on: ubuntu-latest
18+
1819
strategy:
1920
matrix:
2021
php-versions: [7.4, 8.0, 8.1]
@@ -85,16 +86,19 @@ jobs:
8586

8687
steps:
8788
- name: Checkout
89+
id: git-checkout
8890
uses: actions/checkout@v2
8991

9092
- name: Setup PHP
93+
id: php-install
9194
uses: shivammathur/setup-php@v2
9295
with:
9396
php-version: ${{ matrix.php-versions }}
9497
extensions: mbstring, pgsql, mysql, sqlite, redis, memcached
9598
coverage: pcov
9699

97100
- name: Validate composer.json and composer.lock
101+
id: composer-validate
98102
run: composer validate --strict
99103

100104
- name: Cache Composer packages
@@ -107,43 +111,53 @@ jobs:
107111
${{ runner.os }}-php-
108112
109113
- name: Install dependencies
114+
id: composer-dependencies
110115
run: composer install --prefer-dist --no-progress
111116

112-
- name: Prepare run test suite
113-
run: |
114-
mkdir build
117+
- name: Check codeclimate
118+
id: codeclimate-check
119+
run: "echo ::set-output name=execute::${{ matrix.php-versions == '8.0' && matrix.caches == 'array' && matrix.databases == 'testing' }}"
115120

116121
- name: Prepare codeclimate
122+
id: codeclimate-prepare
117123
run: |
118124
curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
119125
chmod +x ./cc-test-reporter
120126
./cc-test-reporter before-build
121-
if: ${{ matrix.php-versions == '8.0' }}
127+
if: ${{ steps.codeclimate-check.outputs.execute == 'true' }}
128+
129+
- name: Prepare run test suite
130+
id: unit-prepare
131+
run: |
132+
mkdir build
122133
123134
- name: Run test suite
135+
id: unit-run
124136
run: |
125-
if [[ $DB_CONNECTION == "testing" ]]; then
126-
composer paraunit
127-
else
137+
if [[ $DB_CONNECTION == "mariadb" ]]; then
128138
composer unit
139+
else
140+
composer parabench
129141
fi
130142
env:
131143
CACHE_DRIVER: ${{ matrix.caches }}
132144
DB_CONNECTION: ${{ matrix.databases }}
133145

134146
- name: Run mutation test suite
147+
id: infect-run
135148
run: composer infect
136149
env:
137150
CACHE_DRIVER: ${{ matrix.caches }}
138151
DB_CONNECTION: ${{ matrix.databases }}
139152
STRYKER_DASHBOARD_API_KEY: ${{ secrets.STRYKER_DASHBOARD_API_KEY }}
140-
if: ${{ matrix.php-versions == '8.0' }}
153+
if: ${{ steps.codeclimate-check.outputs.execute == 'true' }}
141154

142155
- name: Send coverage
156+
id: codeclimate-send
143157
run: |
144158
./cc-test-reporter after-build --coverage-input-type clover --exit-code 0
145159
bash <(curl -s https://codecov.io/bash)
146160
env:
147161
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
148162
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
149-
if: ${{ matrix.php-versions == '8.0' }}
163+
if: ${{ steps.codeclimate-check.outputs.execute == 'true' }}

.github/workflows/psalm.yaml

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
name: psalm
2+
3+
on:
4+
push:
5+
branches: [ master ]
6+
pull_request:
7+
branches: [ master ]
8+
9+
jobs:
10+
psalm:
11+
runs-on: ubuntu-latest
12+
13+
steps:
14+
- name: Checkout
15+
uses: actions/checkout@v2
16+
17+
- name: Setup PHP
18+
uses: shivammathur/setup-php@v2
19+
with:
20+
php-version: 8.0
21+
22+
- name: Validate composer.json and composer.lock
23+
run: composer validate --strict
24+
25+
- name: Cache Composer packages
26+
id: composer-cache
27+
uses: actions/cache@v2
28+
with:
29+
path: vendor
30+
key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
31+
restore-keys: |
32+
${{ runner.os }}-php-
33+
34+
- name: Install dependencies
35+
run: composer install --prefer-dist --no-progress
36+
37+
- name: Run psalm
38+
run: composer psalm

.github/workflows/rector.yaml

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
name: rector
2+
3+
on:
4+
push:
5+
branches: [ master ]
6+
pull_request:
7+
branches: [ master ]
8+
9+
jobs:
10+
rector:
11+
runs-on: ubuntu-latest
12+
13+
steps:
14+
- name: Checkout
15+
uses: actions/checkout@v2
16+
17+
- name: Setup PHP
18+
uses: shivammathur/setup-php@v2
19+
with:
20+
php-version: 7.4
21+
22+
- name: Validate composer.json and composer.lock
23+
run: composer validate --strict
24+
25+
- name: Cache Composer packages
26+
id: composer-cache
27+
uses: actions/cache@v2
28+
with:
29+
path: vendor
30+
key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
31+
restore-keys: |
32+
${{ runner.os }}-php-
33+
34+
- name: Install dependencies
35+
run: composer install --prefer-dist --no-progress
36+
37+
- name: Run rector
38+
run: composer rector

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,4 @@ build/
66
.phpunit.result.cache
77
.php_cs_cache
88
node_modules/
9+
.deptrac.cache

.phpstorm.meta.php

Lines changed: 83 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,34 +2,98 @@
22

33
namespace PHPSTORM_META {
44

5-
use Bavix\Wallet\Interfaces\Mathable;
6-
use Bavix\Wallet\Interfaces\Rateable;
7-
use Bavix\Wallet\Interfaces\Storable;
5+
use Bavix\Wallet\Internal\Assembler\AvailabilityDtoAssemblerInterface;
6+
use Bavix\Wallet\Internal\Assembler\TransactionDtoAssemblerInterface;
7+
use Bavix\Wallet\Internal\Assembler\TransactionQueryAssemblerInterface;
8+
use Bavix\Wallet\Internal\Assembler\TransferDtoAssemblerInterface;
9+
use Bavix\Wallet\Internal\Assembler\TransferLazyDtoAssemblerInterface;
10+
use Bavix\Wallet\Internal\Assembler\TransferQueryAssemblerInterface;
11+
use Bavix\Wallet\Internal\Repository\TransactionRepositoryInterface;
12+
use Bavix\Wallet\Internal\Repository\TransferRepositoryInterface;
13+
use Bavix\Wallet\Services\AtomicService;
14+
use Bavix\Wallet\Services\AtomicServiceInterface;
15+
use Bavix\Wallet\Services\CastServiceInterface;
16+
use Bavix\Wallet\Internal\Service\JsonServiceInterface;
17+
use Bavix\Wallet\Services\DiscountServiceInterface;
18+
use Bavix\Wallet\Services\PrepareServiceInterface;
19+
use Bavix\Wallet\Internal\Transform\TransactionDtoTransformerInterface;
20+
use Bavix\Wallet\Internal\Transform\TransferDtoTransformerInterface;
821
use Bavix\Wallet\Models\Transaction;
922
use Bavix\Wallet\Models\Transfer;
1023
use Bavix\Wallet\Models\Wallet;
11-
use Bavix\Wallet\Objects\Bring;
24+
use Bavix\Wallet\Services\AssistantServiceInterface;
25+
use Bavix\Wallet\Services\AtmServiceInterface;
26+
use Bavix\Wallet\Services\BasketServiceInterface;
27+
use Bavix\Wallet\Services\BookkeeperServiceInterface;
28+
use Bavix\Wallet\Interfaces\CartInterface;
29+
use Bavix\Wallet\Services\ConsistencyServiceInterface;
30+
use Bavix\Wallet\Internal\Service\DatabaseServiceInterface;
31+
use Bavix\Wallet\Services\ExchangeServiceInterface;
32+
use Bavix\Wallet\Internal\Service\LockServiceInterface;
33+
use Bavix\Wallet\Internal\Service\MathServiceInterface;
34+
use Bavix\Wallet\Services\PurchaseServiceInterface;
35+
use Bavix\Wallet\Internal\Service\StorageServiceInterface;
36+
use Bavix\Wallet\Internal\Service\TranslatorServiceInterface;
37+
use Bavix\Wallet\Internal\Service\UuidFactoryServiceInterface;
1238
use Bavix\Wallet\Objects\Cart;
13-
use Bavix\Wallet\Objects\EmptyLock;
14-
use Bavix\Wallet\Objects\Operation;
15-
use Bavix\Wallet\Services\CommonService;
16-
use Bavix\Wallet\Services\ExchangeService;
17-
use Bavix\Wallet\Services\WalletService;
39+
use Bavix\Wallet\Services\CommonServiceLegacy;
40+
use Bavix\Wallet\Services\MetaServiceLegacy;
41+
use Bavix\Wallet\Services\TaxServiceInterface;
42+
use Bavix\Wallet\Services\WalletServiceLegacy;
1843

1944
override(\app(0), map([
20-
Cart::class => Cart::class,
21-
Bring::class => Bring::class,
22-
Operation::class => Operation::class,
23-
EmptyLock::class => EmptyLock::class,
24-
ExchangeService::class => ExchangeService::class,
25-
CommonService::class => CommonService::class,
26-
WalletService::class => WalletService::class,
45+
// internal.assembler
46+
AvailabilityDtoAssemblerInterface::class => AvailabilityDtoAssemblerInterface::class,
47+
TransactionDtoAssemblerInterface::class => TransactionDtoAssemblerInterface::class,
48+
TransferDtoAssemblerInterface::class => TransferDtoAssemblerInterface::class,
49+
TransferLazyDtoAssemblerInterface::class => TransferLazyDtoAssemblerInterface::class,
50+
// internal.query in assembler
51+
TransactionQueryAssemblerInterface::class => TransactionQueryAssemblerInterface::class,
52+
TransferQueryAssemblerInterface::class => TransferQueryAssemblerInterface::class,
53+
54+
// internal.repositories
55+
TransactionRepositoryInterface::class => TransactionRepositoryInterface::class,
56+
TransferRepositoryInterface::class => TransferRepositoryInterface::class,
57+
58+
// internal.service
59+
DatabaseServiceInterface::class => DatabaseServiceInterface::class,
60+
JsonServiceInterface::class => JsonServiceInterface::class,
61+
LockServiceInterface::class => LockServiceInterface::class,
62+
MathServiceInterface::class => MathServiceInterface::class,
63+
StorageServiceInterface::class => StorageServiceInterface::class,
64+
TranslatorServiceInterface::class => TranslatorServiceInterface::class,
65+
UuidFactoryServiceInterface::class => UuidFactoryServiceInterface::class,
66+
67+
// internal.transform
68+
TransactionDtoTransformerInterface::class => TransactionDtoTransformerInterface::class,
69+
TransferDtoTransformerInterface::class => TransferDtoTransformerInterface::class,
70+
71+
// legacy.models
2772
Wallet::class => Wallet::class,
2873
Transfer::class => Transfer::class,
2974
Transaction::class => Transaction::class,
30-
Mathable::class => Mathable::class,
31-
Rateable::class => Rateable::class,
32-
Storable::class => Storable::class,
75+
76+
// legacy.objects
77+
Cart::class => Cart::class,
78+
79+
// services
80+
AssistantServiceInterface::class => AssistantServiceInterface::class,
81+
AtmServiceInterface::class => AtmServiceInterface::class,
82+
AtomicServiceInterface::class => AtomicServiceInterface::class,
83+
BasketServiceInterface::class => BasketServiceInterface::class,
84+
BookkeeperServiceInterface::class => BookkeeperServiceInterface::class,
85+
CastServiceInterface::class => CastServiceInterface::class,
86+
ConsistencyServiceInterface::class => ConsistencyServiceInterface::class,
87+
DiscountServiceInterface::class => DiscountServiceInterface::class,
88+
ExchangeServiceInterface::class => ExchangeServiceInterface::class,
89+
PrepareServiceInterface::class => PrepareServiceInterface::class,
90+
PurchaseServiceInterface::class => PurchaseServiceInterface::class,
91+
TaxServiceInterface::class => TaxServiceInterface::class,
92+
93+
// lagacy.services
94+
CommonServiceLegacy::class => CommonServiceLegacy::class,
95+
MetaServiceLegacy::class => MetaServiceLegacy::class,
96+
WalletServiceLegacy::class => WalletServiceLegacy::class,
3397
]));
3498

3599
}

0 commit comments

Comments
 (0)