Skip to content

Commit 3e84b8e

Browse files
authored
Merge pull request #25 from php/master
sync
2 parents 265af42 + b7dd3d8 commit 3e84b8e

File tree

601 files changed

+11574
-6377
lines changed

Some content is hidden

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

601 files changed

+11574
-6377
lines changed

.circleci/config.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ jobs:
55
resource_class: arm.medium
66
docker:
77
- image: cimg/base:current-22.04
8-
- image: mysql:8
8+
- image: mysql:8.3
99
environment:
1010
MYSQL_ALLOW_EMPTY_PASSWORD: true
1111
MYSQL_ROOT_PASSWORD: ''

.github/CODEOWNERS

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
/.github @iluuu1994 @TimWolla
1212
/build/gen_stub.php @kocsismate
13-
/ext/bcmath @Girgias
13+
/ext/bcmath @Girgias @nielsdos @SakiTakamachi
1414
/ext/curl @adoy
1515
/ext/date @derickr
1616
/ext/dba @Girgias
@@ -37,10 +37,13 @@
3737
/ext/pgsql @devnexen
3838
/ext/random @TimWolla @zeriyoshi
3939
/ext/session @Girgias
40+
/ext/simplexml @nielsdos
4041
/ext/sockets @devnexen
4142
/ext/spl @Girgias
4243
/ext/standard @bukka
44+
/ext/xml @nielsdos
4345
/ext/xmlreader @nielsdos
46+
/ext/xmlwriter @nielsdos
4447
/ext/xsl @nielsdos
4548
/main @bukka
4649
/sapi/fpm @bukka

.github/actions/build-libmysqlclient/action.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,9 @@ runs:
1515
set -x
1616
LIBMYSQL=${{ inputs.libmysql }}
1717
MYSQL_BASE=${LIBMYSQL%%-linux-*}
18-
MYSQL_VERSION=${MYSQL_BASE#*-}
1918
MYSQL_DIR=$HOME/$MYSQL_BASE
2019
mkdir -p $MYSQL_DIR
21-
URL=https://cdn.mysql.com/Downloads/MySQL-${MYSQL_VERSION%.*}/$LIBMYSQL
20+
URL=https://downloads.mysql.com/archives/get/p/23/file/$LIBMYSQL
2221
wget -nv $URL
2322
tar -xf $LIBMYSQL --strip-components=1 -C $MYSQL_DIR
2423
PDO_MYSQL=${MYSQL_DIR}

.github/workflows/nightly.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ jobs:
159159
image: ubuntu:${{ matrix.branch.version.minor >= 3 && '22.04' || '20.04' }}
160160
services:
161161
mysql:
162-
image: mysql:8
162+
image: mysql:8.3
163163
ports:
164164
- 3306:3306
165165
env:
@@ -745,7 +745,7 @@ jobs:
745745
uses: ./.github/actions/build-libmysqlclient
746746
with:
747747
configurationParameters: --enable-werror
748-
libmysql: mysql-8.0.35-linux-glibc2.28-x86_64.tar.xz
748+
libmysql: mysql-8.0.36-linux-glibc2.28-x86_64.tar.xz
749749
withMysqli: ${{ matrix.branch.ref == 'PHP-8.1' }}
750750
- name: Test mysql-8.0
751751
uses: ./.github/actions/test-libmysqlclient
@@ -824,6 +824,7 @@ jobs:
824824
with:
825825
key: "${{github.job}}-${{hashFiles('php/main/php_version.h')}}"
826826
append-timestamp: false
827+
save: ${{ github.event_name != 'pull_request' }}
827828
- name: build PHP
828829
run: |
829830
cd php

.github/workflows/push.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ jobs:
4646
if: github.repository == 'php/php-src' || github.event_name == 'pull_request'
4747
services:
4848
mysql:
49-
image: mysql:8
49+
image: mysql:8.3
5050
ports:
5151
- 3306:3306
5252
env:
@@ -116,6 +116,7 @@ jobs:
116116
# job id, not the job name)
117117
key: "LINUX_X64_${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }}${{ matrix.asan && '_ASAN' || '' }}-${{hashFiles('main/php_version.h')}}"
118118
append-timestamp: false
119+
save: ${{ github.event_name != 'pull_request' }}
119120
- name: ./configure
120121
uses: ./.github/actions/configure-x64
121122
with:
@@ -170,6 +171,7 @@ jobs:
170171
with:
171172
key: "${{github.job}}-${{matrix.os}}-${{hashFiles('main/php_version.h')}}"
172173
append-timestamp: false
174+
save: ${{ github.event_name != 'pull_request' }}
173175
- name: ./configure
174176
uses: ./.github/actions/configure-macos
175177
with:
@@ -246,6 +248,7 @@ jobs:
246248
with:
247249
key: "${{github.job}}-${{hashFiles('main/php_version.h')}}"
248250
append-timestamp: false
251+
save: ${{ github.event_name != 'pull_request' }}
249252
- name: ./configure
250253
run: |
251254
set -x

.gitignore

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ Makefile
7878
Makefile.fragments
7979
Makefile.objects
8080

81-
# Directories for shared object files and headers generated by `./configure`
81+
# Directories for shared object files generated by `./configure`
8282
libs/
8383
modules/
8484

@@ -166,11 +166,6 @@ php
166166
# Extensions files
167167
# ------------------------------------------------------------------------------
168168

169-
# Miscellaneous extensions files
170-
/ext/opcache/jit/zend_jit_x86.c
171-
/ext/opcache/jit/zend_jit_arm64.c
172-
/ext/opcache/minilua
173-
174169
# Generated by `cd ext/name && phpize && ./configure`
175170
/ext/*/build/
176171
/ext/*/configure.ac

CODING_STANDARDS.md

Lines changed: 39 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -152,62 +152,74 @@ rewritten to comply with these rules.
152152
1. Method names follow the *studlyCaps* (also referred to as *bumpy case* or
153153
*camel caps*) naming convention, with care taken to minimize the letter
154154
count. The initial letter of the name is lowercase, and each letter that
155-
starts a new `word` is capitalized:
155+
starts a new "word" is capitalized.
156156

157-
Good:
157+
1. Class names should be descriptive nouns in *PascalCase* and as short as
158+
possible. Each word in the class name should start with a capital letter,
159+
without underscore delimiters. The class name should be prefixed with the
160+
name of the "parent set" (e.g. the name of the extension) if no namespaces
161+
are used.
162+
163+
1. Abbreviations and acronyms as well as initialisms should be avoided wherever
164+
possible, unless they are much more widely used than the long form (e.g. HTTP
165+
or URL). Abbreviations, acronyms, and initialisms should be treated like
166+
regular words, thus they should be written with an uppercase first character,
167+
followed by lowercase characters.
168+
169+
1. Diverging from this policy is allowed to keep internal consistency within a
170+
single extension, if the name follows an established, language-agnostic
171+
standard, or for other reasons, if those reasons are properly justified
172+
and voted on as part of the RFC process.
173+
174+
175+
Good method names:
158176

159177
```php
160178
connect()
161179
getData()
162180
buildSomeWidget()
181+
performHttpRequest()
163182
```
164183

165-
Bad:
184+
Bad method names:
166185

167186
```php
168187
get_Data()
169188
buildsomewidget()
170189
getI()
190+
performHTTPRequest()
171191
```
172192

173-
1. Class names should be descriptive nouns in *PascalCase* and as short as
174-
possible. Each word in the class name should start with a capital letter,
175-
without underscore delimiters. The class name should be prefixed with the
176-
name of the "parent set" (e.g. the name of the extension) if no namespaces
177-
are used. Abbreviations and acronyms as well as initialisms should be
178-
avoided wherever possible, unless they are much more widely used than the
179-
long form (e.g. HTTP or URL). Abbreviations start with a capital letter
180-
followed by lowercase letters, whereas acronyms and initialisms are written
181-
according to their standard notation. Usage of acronyms and initialisms is
182-
not allowed if they are not widely adopted and recognized as such.
183-
184-
Good:
193+
Good class names:
185194

186195
```php
187196
Curl
188197
CurlResponse
189-
HTTPStatusCode
190-
URL
191-
BTreeMap // B-tree Map
192-
Id // Identifier
193-
ID // Identity Document
198+
HttpStatusCode
199+
Url
200+
BtreeMap // B-tree Map
201+
UserId // User Identifier
194202
Char // Character
195203
Intl // Internationalization
196-
Radar // Radio Detecting and Ranging
204+
Ssl\Certificate
205+
Ssl\Crl // Certificate Revocation List
206+
Ssl\CrlUrl
197207
```
198208

199-
Bad:
209+
Bad class names:
200210

201211
```php
202212
curl
203213
curl_response
204-
HttpStatusCode
205-
Url
206-
BtreeMap
207-
ID // Identifier
214+
HTTPStatusCode
215+
URL
216+
BTreeMap
217+
UserID // User Identifier
208218
CHAR
209219
INTL
210-
RADAR // Radio Detecting and Ranging
220+
SSL\Certificate
221+
SSL\CRL
222+
SSL\CRLURL
211223
```
212224

213225
## Internal function naming conventions

EXTENSIONS

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,12 +170,14 @@ EXTENSION: dom
170170
PRIMARY MAINTAINER: Christian Stocker <[email protected]> (2003 - 2011)
171171
Rob Richards <[email protected]> (2003 - 2012)
172172
Marcus Börger <[email protected]> (2003 - 2006)
173+
Niels Dossche <[email protected]> (2023 - 2024)
173174
MAINTENANCE: Maintained
174175
STATUS: Working
175176
SINCE: 5.0
176177
-------------------------------------------------------------------------------
177178
EXTENSION: simplexml
178179
PRIMARY MAINTAINER: Marcus Börger <[email protected]> (2003 - 2008)
180+
Niels Dossche <[email protected]> (2023 - 2024)
179181
MAINTENANCE: Maintained
180182
STATUS: Working
181183
SINCE: 5.0
@@ -188,30 +190,35 @@ STATUS: Working
188190
EXTENSION: xml
189191
PRIMARY MAINTAINER: Thies C. Arntzen <[email protected]> (1999 - 2002)
190192
Rob Richards <[email protected]> (2003 - 2013)
193+
Niels Dossche <[email protected]> (2023 - 2024)
191194
MAINTENANCE: Maintained
192195
STATUS: Working
193196
-------------------------------------------------------------------------------
194197
EXTENSION: libxml
195198
PRIMARY MAINTAINER: Rob Richards <[email protected]> (2003 - 2009)
196199
Christian Stocker <[email protected]> (2004 - 2011)
200+
Niels Dossche <[email protected]> (2023 - 2024)
197201
MAINTENANCE: Maintained
198202
STATUS: Working
199203
-------------------------------------------------------------------------------
200204
EXTENSION: xmlreader
201205
PRIMARY MAINTAINER: Rob Richards <[email protected]> (2004 - 2010)
202206
Christian Stocker <[email protected]> (2004 - 2004)
207+
Niels Dossche <[email protected]> (2023 - 2024)
203208
MAINTENANCE: Maintained
204209
STATUS: Working
205210
-------------------------------------------------------------------------------
206211
EXTENSION: xmlwriter
207212
PRIMARY MAINTAINER: Rob Richards <[email protected]> (2004 - 2010)
208213
Pierre-Alain Joye <[email protected]> (2005-2009)
214+
Niels Dossche <[email protected]> (2023 - 2024)
209215
MAINTENANCE: Maintained
210216
STATUS: Working
211217
-------------------------------------------------------------------------------
212218
EXTENSION: xsl
213219
PRIMARY MAINTAINER: Christian Stocker <[email protected]> (2003 - 2011)
214220
Rob Richards <[email protected]> (2003 - 2010)
221+
Niels Dossche <[email protected]> (2023 - 2024)
215222
MAINTENANCE: Maintained
216223
STATUS: Working
217224
SINCE: 5.0

NEWS

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@ PHP NEWS
22
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
33
?? ??? ????, PHP 8.4.0alpha1
44

5+
- BCMath:
6+
. [RFC] Add bcfloor, bcceil and bcround to BCMath. (Saki Takamachi)
7+
. Improve performance. (Saki Takamachi, nielsdos)
8+
59
- Core:
610
. Added zend_call_stack_get implementation for NetBSD, DragonFlyBSD,
711
Solaris and Haiku. (David Carlier)
@@ -86,6 +90,7 @@ PHP NEWS
8690
. ResourceBundle::get() now has a tentative return type of:
8791
ResourceBundle|array|string|int|null
8892
. Added the new Grapheme function grapheme_str_split. (youkidearitai)
93+
. Added IntlDateFormatter::parseToCalendar. (David Carlier)
8994

9095
- LDAP:
9196
. Added LDAP_OPT_X_TLS_PROTOCOL_MAX/LDAP_OPT_X_TLS_PROTOCOL_TLS1_3
@@ -123,6 +128,8 @@ PHP NEWS
123128
. Added X509_PURPOSE_OCSP_HELPER and X509_PURPOSE_TIMESTAMP_SIGN constants.
124129
(Vincent Jardin)
125130
. Bumped minimum required OpenSSL version to 1.1.1. (Ayesh Karunaratne)
131+
. Added compile-time option --with-openssl-legacy-provider to enable legacy
132+
provider. (Adam Saponara)
126133

127134
- Output:
128135
. Clear output handler status flags during handler initialization. (haszi)
@@ -134,7 +141,7 @@ PHP NEWS
134141
. Added pcntl_getaffinity/pcntl_setaffinity. (David Carlier)
135142
. Updated pcntl_get_signal_handler signal id upper limit to be
136143
more in line with platforms limits. (David Carlier)
137-
. Added pcntl_getcpu for Linux/FreeBSD. (David Carlier)
144+
. Added pcntl_getcpu for Linux/FreeBSD/Solaris/Illumos. (David Carlier)
138145
. Added pcntl_getqos_class/pcntl_setqos_class for macOs. (David Carlier)
139146
. Added SIGCKPT/SIGCKPTEXIT constants for DragonFlyBSD. (David Carlier)
140147

@@ -168,6 +175,7 @@ PHP NEWS
168175
PDO constructor arguments. (SakiTakamachi)
169176
. Fixed native float support with pdo_pgsql query results. (Yurunsoft)
170177
. Added class PdoPgsql. (danack, kocsismate)
178+
. Retrieve the memory usage of the query result resource. (KentarouTakeda)
171179

172180
- PDO_SQLITE:
173181
. Added class PdoSqlite. (danack, kocsismate)
@@ -176,6 +184,8 @@ PHP NEWS
176184
. Added the possibility to have no conditions for pg_select. (OmarEmaraDev)
177185
. Persistent connections support the PGSQL_CONNECT_FORCE_RENEW flag.
178186
(David Carlier)
187+
. Added pg_result_memory_size to get the query result memory usage.
188+
(KentarouTakeda)
179189

180190
- Phar:
181191
. Fixed bug GH-12532 (PharData created from zip has incorrect timestamp).
@@ -209,6 +219,8 @@ PHP NEWS
209219
(David Carlier)
210220
. Updated the socket_create_listen backlog argument default value to SOMAXCONN.
211221
(David Carlier)
222+
. Added the SO_NOSIGPIPE constant to control the generation of SIGPIPE for
223+
macOs and FreeBSD. (David Carlier)
212224

213225
- SNMP:
214226
. Removed the deprecated inet_ntoa call support. (David Carlier)
@@ -230,6 +242,9 @@ PHP NEWS
230242
. Add support for AEGIS-128L and AEGIS-256 (jedisct1)
231243
. Enable AES-GCM on aarch64 with the ARM crypto extensions (jedisct1)
232244

245+
- SPL:
246+
. Implement SeekableIterator for SplObjectStorage. (nielsdos)
247+
233248
- Standard:
234249
. Implement GH-12188 (Indication for the int size in phpinfo()). (timwolla)
235250
. Partly fix GH-12143 (Incorrect round() result for 0.49999999999999994).

0 commit comments

Comments
 (0)