Volodymyr Panivko created THRIFT-5977:
-----------------------------------------
Summary: Apply constructor property promotion in PHP runtime
library
Key: THRIFT-5977
URL: https://issues.apache.org/jira/browse/THRIFT-5977
Project: Thrift
Issue Type: Improvement
Reporter: Volodymyr Panivko
h2. Background
THRIFT-5976 introduced native typed properties throughout {{lib/php/lib/}}. As
a follow-up, many of those classes have constructors that are pure 1:1
argument→property assignments — a perfect fit for PHP 8 constructor property
promotion, which collapses declaration + assignment into a single line per
parameter.
This is a syntactic-only refactor: no LSP impact, no test changes, no
behavioural change.
h2. Scope
Apply constructor property promotion across the PHP runtime library where the
constructor body is purely arg→property (or arg→property + parent::__construct).
* Full promote: TBinaryProtocolFactory, TServer (6 properties), TServerSocket,
TMemoryBuffer, TBufferedTransport, TFramedTransport, ThriftClassLoader.
* Partial promote (body keeps parent-call or single non-promotable line):
TBinaryProtocol, TBinaryProtocolAccelerated, TMultiplexedProtocol,
StoredMessageProtocol, TSocket, TSSLSocket, TSSLServerSocket, THttpClient,
TCurlClient, TSocketPool.
h2. Out of scope
* TPhpStream — bitwise ctor logic.
* Exception hierarchy (TException, TApplicationException, TProtocolException,
TTransportException) — dual-mode bridge constructor.
* TBase, TSimpleJSONProtocol, TJSONProtocol — non-trivial ctor bodies.
h2. Verification
* {{composer phpstan}} clean.
* {{vendor/bin/phpcs}} clean.
* {{vendor/bin/phpunit}} Unit (629) + Integration (106) green.
Parent: THRIFT-5960
Client: php
--
This message was sent by Atlassian Jira
(v8.20.10#820010)