[ 
https://issues.apache.org/jira/browse/THRIFT-5976?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Volodymyr Panivko resolved THRIFT-5976.
---------------------------------------
      Assignee: Volodymyr Panivko
    Resolution: Fixed

> Add native types to PHP library properties (PHPDoc @var → declared types)
> -------------------------------------------------------------------------
>
>                 Key: THRIFT-5976
>                 URL: https://issues.apache.org/jira/browse/THRIFT-5976
>             Project: Thrift
>          Issue Type: Sub-task
>            Reporter: Volodymyr Panivko
>            Assignee: Volodymyr Panivko
>            Priority: Major
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> h2. Background
> The PHP runtime library {{lib/php/lib/}} documents property types via PHPDoc 
> ({{@var X}}) but doesn't declare them natively. PHP 8.1+ supports typed 
> properties, which catch type errors at runtime and enable phpstan to verify 
> access. This is a no-LSP-cascade additive change: typed properties are 
> inherited as-is by subclasses (no contravariance issues like with method 
> parameters).
> h2. Scope
> * Convert {{@var T}} PHPDoc on properties to native PHP type declarations 
> across {{lib/php/lib/}}.
> * Where parent and child both declare the same property, type both 
> consistently in this commit.
> * Where parent declares an untyped {{protected $foo}} accessed by children 
> that initialize with values of consistent shape, declare the appropriate type 
> on parent.
> * Constructor property promotion in factory classes that take params 1:1 
> mapped to properties (e.g. TBinaryProtocolFactory).
> * Skip method parameters / return types — those are tracked separately under 
> THRIFT-5960.
> h2. Out of scope
> * Method parameter / return types (deferred to follow-up sub-tickets).
> * Generator changes (deferred).
> * {{declare(strict_types=1)}} (separate sub-ticket).
> h2. Verification
> * {{composer phpstan}} clean.
> * {{vendor/bin/phpcs}} clean.
> * {{vendor/bin/phpunit}} Unit + Integration green.
> * Class-loading does not fatal due to type mismatches.
> Parent: THRIFT-5960
> Client: php



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to