Skip to content

Commit c4a89e1

Browse files
authored
Merge pull request #8723 from codeigniter4/develop
4.5.0 Ready code
2 parents e134990 + 37b5ca0 commit c4a89e1

File tree

1,084 files changed

+20447
-7394
lines changed

Some content is hidden

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

1,084 files changed

+20447
-7394
lines changed

.github/workflows/deploy-userguide-latest.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ jobs:
3030
- name: Setup PHP
3131
uses: shivammathur/setup-php@v2
3232
with:
33-
php-version: '8.0'
33+
php-version: '8.1'
3434
coverage: none
3535

3636
# Build the latest User Guide

.github/workflows/reusable-coveralls.yml

+3-1
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,8 @@ jobs:
6363
vendor/bin/phpcov merge --clover build/logs/clover.xml build/cov
6464
6565
- name: Upload coverage to Coveralls
66-
run: vendor/bin/php-coveralls --verbose --exclude-no-stmt --ansi
66+
run: |
67+
composer global require php-coveralls/php-coveralls
68+
php-coveralls --verbose --exclude-no-stmt --ansi
6769
env:
6870
COVERALLS_REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/test-coding-standards.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ jobs:
2828
fail-fast: false
2929
matrix:
3030
php-version:
31-
- '7.4'
32-
- '8.0'
31+
- '8.1'
32+
- '8.2'
3333

3434
steps:
3535
- name: Checkout

.github/workflows/test-phpcpd.yml

+3-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ jobs:
4141
- name: Setup PHP
4242
uses: shivammathur/setup-php@v2
4343
with:
44-
php-version: '8.0'
44+
php-version: '8.1'
4545
tools: phpcpd
4646
extensions: dom, mbstring
4747

@@ -57,4 +57,6 @@ jobs:
5757
--exclude system/Debug/Exceptions.php
5858
--exclude system/HTTP/SiteURI.php
5959
--exclude system/Validation/Rules.php
60+
--exclude system/Autoloader/Autoloader.php
61+
--exclude system/Config/Filters.php
6062
-- app/ public/ system/

.github/workflows/test-phpunit.yml

+2-10
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ jobs:
4747
steps:
4848
- id: coverage-php-version
4949
run: |
50-
echo "version=8.1" >> $GITHUB_OUTPUT
50+
echo "version=8.2" >> $GITHUB_OUTPUT
5151
5252
sanity-tests:
5353
name: Others
@@ -56,8 +56,6 @@ jobs:
5656
strategy:
5757
matrix:
5858
php-version:
59-
- '7.4'
60-
- '8.0'
6159
- '8.1'
6260
- '8.2'
6361
- '8.3'
@@ -87,8 +85,6 @@ jobs:
8785
fail-fast: false
8886
matrix:
8987
php-version:
90-
- '7.4'
91-
- '8.0'
9288
- '8.1'
9389
- '8.2'
9490
- '8.3'
@@ -101,7 +97,7 @@ jobs:
10197
mysql-version:
10298
- '8.0'
10399
include:
104-
- php-version: '7.4'
100+
- php-version: '8.1'
105101
db-platform: MySQLi
106102
mysql-version: '5.7'
107103
- php-version: '8.3'
@@ -130,8 +126,6 @@ jobs:
130126
strategy:
131127
matrix:
132128
php-version:
133-
- '7.4'
134-
- '8.0'
135129
- '8.1'
136130
- '8.2'
137131
- '8.3'
@@ -160,8 +154,6 @@ jobs:
160154
strategy:
161155
matrix:
162156
php-version:
163-
- '7.4'
164-
- '8.0'
165157
- '8.1'
166158
- '8.2'
167159
- '8.3'

.github/workflows/test-rector.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ jobs:
4545
strategy:
4646
fail-fast: false
4747
matrix:
48-
php-versions: ['7.4', '8.0']
48+
php-versions: ['8.1', '8.3']
4949
steps:
5050
- name: Checkout
5151
uses: actions/checkout@v4

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -126,5 +126,6 @@ nb-configuration.xml
126126
/results/
127127
/phpunit*.xml
128128
/.phpunit.*.cache
129+
/.phpunit.cache
129130

130131
/.php-cs-fixer.php

.php-cs-fixer.dist.php

+5-8
Original file line numberDiff line numberDiff line change
@@ -56,13 +56,10 @@
5656
'admin@codeigniter.com'
5757
);
5858

59-
// @TODO: remove this check when support for PHP 7.4 is dropped
60-
if (PHP_VERSION_ID >= 80000) {
61-
$config
62-
->registerCustomFixers(FixerGenerator::create('vendor/nexusphp/cs-config/src/Fixer', 'Nexus\\CsConfig\\Fixer'))
63-
->setRules(array_merge($config->getRules(), [
64-
NoCodeSeparatorCommentFixer::name() => true,
65-
]));
66-
}
59+
$config
60+
->registerCustomFixers(FixerGenerator::create('vendor/nexusphp/cs-config/src/Fixer', 'Nexus\\CsConfig\\Fixer'))
61+
->setRules(array_merge($config->getRules(), [
62+
NoCodeSeparatorCommentFixer::name() => true,
63+
]));
6764

6865
return $config;

.php-cs-fixer.no-header.php

+5-8
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,10 @@
3838

3939
$config = Factory::create(new CodeIgniter4(), $overrides, $options)->forProjects();
4040

41-
// @TODO: remove this check when support for PHP 7.4 is dropped
42-
if (PHP_VERSION_ID >= 80000) {
43-
$config
44-
->registerCustomFixers(FixerGenerator::create('vendor/nexusphp/cs-config/src/Fixer', 'Nexus\\CsConfig\\Fixer'))
45-
->setRules(array_merge($config->getRules(), [
46-
NoCodeSeparatorCommentFixer::name() => true,
47-
]));
48-
}
41+
$config
42+
->registerCustomFixers(FixerGenerator::create('vendor/nexusphp/cs-config/src/Fixer', 'Nexus\\CsConfig\\Fixer'))
43+
->setRules(array_merge($config->getRules(), [
44+
NoCodeSeparatorCommentFixer::name() => true,
45+
]));
4946

5047
return $config;

.php-cs-fixer.user-guide.php

+5-8
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,10 @@
4848

4949
$config = Factory::create(new CodeIgniter4(), $overrides, $options)->forProjects();
5050

51-
// @TODO: remove this check when support for PHP 7.4 is dropped
52-
if (PHP_VERSION_ID >= 80000) {
53-
$config
54-
->registerCustomFixers(FixerGenerator::create('vendor/nexusphp/cs-config/src/Fixer', 'Nexus\\CsConfig\\Fixer'))
55-
->setRules(array_merge($config->getRules(), [
56-
NoCodeSeparatorCommentFixer::name() => true,
57-
]));
58-
}
51+
$config
52+
->registerCustomFixers(FixerGenerator::create('vendor/nexusphp/cs-config/src/Fixer', 'Nexus\\CsConfig\\Fixer'))
53+
->setRules(array_merge($config->getRules(), [
54+
NoCodeSeparatorCommentFixer::name() => true,
55+
]));
5956

6057
return $config;

CHANGELOG.md

+132
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,137 @@
11
# Changelog
22

3+
## [v4.5.0](https://github.com/codeigniter4/CodeIgniter4/tree/v4.5.0) (2024-04-07)
4+
[Full Changelog](https://github.com/codeigniter4/CodeIgniter4/compare/v4.4.8...v4.5.0)
5+
6+
### Breaking Changes
7+
8+
* refactor: always use multiple filters by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/7903
9+
* fix: update psr/log to v2 and fix Logger interface by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/7967
10+
* fix: incorrect return type for Model::objectToRawArray() by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/7986
11+
* fix: filter exec order by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/7955
12+
* refactor: Remove deprecated Config\Config by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8016
13+
* fix: `FileLocator::findQualifiedNameFromPath()` behavior by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8010
14+
* refactor: remove deprecated methods in Model by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8032
15+
* fix: route options are not merged (outer filter is merged with inner filter) by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8033
16+
* fix: route options are not merged (inner filter overrides outer filter) by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/7981
17+
* feat: FileLocator caching by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8017
18+
* refactor: remove deprecated properties and methods in CodeIgniter class by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8050
19+
* fix: make Factories final by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8056
20+
* refactor: remove deprecated test classes by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8057
21+
* refactor: make IncomingRequest::$uri protected by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8067
22+
* refactor: remove deprecated spark commands by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8086
23+
* refactor: remove deprecated Request::isValidIP() by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8090
24+
* fix: set_cookie() $expire type by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8080
25+
* fix: remove traditional validation rule param types (1/2) by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8078
26+
* fix: filters are executed when controller does not exist with Auto Routing (Legacy). by @ping-yee in https://github.com/codeigniter4/CodeIgniter4/pull/7925
27+
* fix: remove traditional validation rule param types (2/2) by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8124
28+
* refactor: remove deprecated ModelFactory by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8139
29+
* refactor: remove deprecated properties in Response by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8142
30+
* fix: remove deprecated upper functionality in `Request::getMethod()` by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8186
31+
* feat: new Required Filters by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8053
32+
* refactor: remove deprecated CastException exception by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8469
33+
* refactor: remove deprecated MockSecurityConfig by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8472
34+
* refactor: remove deprecated CodeIgniter\Entity by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8497
35+
* refactor: remove deprecated Cache\Exceptions\ExceptionInterface by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8498
36+
* fix: API\ResponseTrait can't return string as JSON by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8490
37+
* feat: Validation::run() accepts DB connection by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8499
38+
* feat: 404 Override sets 404 by default by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8535
39+
* refactor: remove deprecated const SPARKED by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8559
40+
* refactor: remove deprecated BaseService::discoverServices() by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8589
41+
* fix: move Kint loading to Autoloader by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8603
42+
* feat: add Boot class by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8604
43+
44+
### Fixed Bugs
45+
46+
* fix: error on `Config\Kint` with Config Caching by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8003
47+
* fix: route key lowercase HTTP verbs by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8235
48+
* fix: use `addHeader()` by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8240
49+
* fix: QueryBuilder limit(0) bug by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8280
50+
* fix: SQLite3 may not throw DatabaseException by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8467
51+
* [4.5] fix: DEBUG-VIEW comments are not output by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8523
52+
* [4.5] fix: $db->dateFormat merge by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8539
53+
* [4.5] fix: spark does not work with composer install --no-dev by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8534
54+
* [4.5] fix: Composer autoload.psr4 by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8569
55+
* [4.5] fix: errors when not updating Config\Feature by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8570
56+
* [4.5] fix: TypeError in Filters by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8683
57+
58+
### New Features
59+
60+
* feat: Language translations finder and update by @neznaika0 in https://github.com/codeigniter4/CodeIgniter4/pull/7896
61+
62+
### Enhancements
63+
64+
* feat: domparser - ability to write more advanced expressions by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/7946
65+
* feat: [Validation] Callable Rules by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/7933
66+
* perf: autoloader by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8005
67+
* feat: db:table shows db config by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/7972
68+
* feat: add `{memory_usage}` replacement by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8008
69+
* perf: replace $locator->getClassname() with findQualifiedNameFromPath() by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8012
70+
* feat: add Method/Route logging in exceptionHandler() by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8108
71+
* feat: add `config:check` command to check Config vaules by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8110
72+
* feat: one generator command could have multiple views by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8119
73+
* feat: improve CLI input testability by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/7978
74+
* feat: add ArrayHelper::dotKeyExists() by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8131
75+
* feat: add CSP clearDirective() to clear existing directive by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8220
76+
* feat: [Validation] add `field_exists` rule by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8123
77+
* feat: add Message::addHeader() to add header with the same name by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8194
78+
* feat: `spark filter:check` shows "Required Filters" by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8236
79+
* feat: [Commands] `lang:find` show bad keys when scanning (v2) by @neznaika0 in https://github.com/codeigniter4/CodeIgniter4/pull/8285
80+
* feat: add `--dbgroup` option to `spark db:table` by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8292
81+
* feat: [Auto Routing Improved] add option to translate uri to camel case by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8321
82+
* feat: `spark routes` shows "Required Filters" by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8237
83+
* feat: HTTP method-aware web page caching by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8364
84+
* feat: `spark make:test` creates test files in `/tests/` directory v2 by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8388
85+
* feat: [Routing] add option to pass multiple URI segments to one Controller parameter by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8348
86+
* feat: add DataConverter to convert types by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8230
87+
* feat: [Model] add option $updateOnlyChanged by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8455
88+
* feat: add event points for spark commands by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8496
89+
* feat: 404 controller also can get PageNotFoundException message by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8491
90+
* feat: add DB config `dateFormat` to provide default date/time formats by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8525
91+
* feat: use $db->dateFormat in Model by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8538
92+
* feat: permit __invoke() method as Controller default method by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8533
93+
* feat: add Model field casting by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8243
94+
* feat: add spark command to check php.ini by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8581
95+
* feat: improve Redis Session by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8578
96+
* feat: add Config\Optimize by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8605
97+
* feat: support database name with dots by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8664
98+
* feat: add `spark optimize` command by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8610
99+
* feat: add CORS filter by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8649
100+
* feat: Support faker modifiers on Fabricator by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/8671
101+
* feat: environment-specific Config\Security::$redirect by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8673
102+
* feat: `spark config:check` detects Config Caching by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8711
103+
104+
### Refactoring
105+
106+
* Drop PHP 7.4 support by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/7924
107+
* [4.5] refactor: remove unused `use` in Model by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8045
108+
* [4.5] refactor: remove BaseModel assert() by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8046
109+
* [4.5] refactor: Filters by rector by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8071
110+
* perf: defer instantiation of Validation in Model by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8087
111+
* refactor: fix types by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8091
112+
* refactor: move ArrayHelper class by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8130
113+
* [4.5] refactor: fix types by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8138
114+
* refactor: fix param types by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8175
115+
* refactor: Validation rule field_exists by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8242
116+
* refactor: `TestResponse` is now a class of its own by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/8264
117+
* refactor: fix TypeError in strict mode by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8270
118+
* refactor: add `declare(strict_types=1)` by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8072
119+
* refactor: remove deprecated Controller::loadHelpers() by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8286
120+
* refactor: remove deprecated methods in Security by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8287
121+
* refactor: HTTP verbs in Router by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8317
122+
* refactor: remove unused exception classes by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8468
123+
* [4.5] refactor: add `declare(strict_types=1)` to ForgeModifyColumnTest by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8502
124+
* [4.5] refactor: use local variables in Model by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8565
125+
* refactor: remove unnecessary BaseService::$services assignment by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8609
126+
* perf: add Factories::get() v2 by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8600
127+
* perf: add Services::get() by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8607
128+
* refactor: remove deprecated items in Request by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8617
129+
* refactor: followup performance `service()` by @ddevsr in https://github.com/codeigniter4/CodeIgniter4/pull/8623
130+
* [4.5] refactor: add declare(strict_types=1) in BadRequestException by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8682
131+
* refactor: DB config properties by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8693
132+
* refactor: upgrade to PHP 8.1 with rector by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8354
133+
* refactor: update PHPUnit to 10 by @kenjis in https://github.com/codeigniter4/CodeIgniter4/pull/8069
134+
3135
## [v4.4.8](https://github.com/codeigniter4/CodeIgniter4/tree/v4.4.8) (2024-04-07)
4136
[Full Changelog](https://github.com/codeigniter4/CodeIgniter4/compare/v4.4.7...v4.4.8)
5137

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ Made with [contrib.rocks](https://contrib.rocks).
8787

8888
## Server Requirements
8989

90-
PHP version 7.4 or higher is required, with the following extensions installed:
90+
PHP version 8.1 or higher is required, with the following extensions installed:
9191

9292
- [intl](http://php.net/manual/en/intl.requirements.php)
9393
- [mbstring](http://php.net/manual/en/mbstring.installation.php)

admin/framework/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ Please read the [*Contributing to CodeIgniter*](https://github.com/codeigniter4/
4242

4343
## Server Requirements
4444

45-
PHP version 7.4 or higher is required, with the following extensions installed:
45+
PHP version 8.1 or higher is required, with the following extensions installed:
4646

4747
- [intl](http://php.net/manual/en/intl.requirements.php)
4848
- [mbstring](http://php.net/manual/en/mbstring.installation.php)

0 commit comments

Comments
 (0)