You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "Jens Geyer (Jira)" <ji...@apache.org> on 2020/06/09 21:26:00 UTC

[jira] [Resolved] (THRIFT-5082) Add a Class reference for PHP enum $_TSPEC

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

Jens Geyer resolved THRIFT-5082.
--------------------------------
    Fix Version/s: 0.14.0
         Assignee: Stanislav
       Resolution: Fixed

> Add a Class reference for PHP enum $_TSPEC
> ------------------------------------------
>
>                 Key: THRIFT-5082
>                 URL: https://issues.apache.org/jira/browse/THRIFT-5082
>             Project: Thrift
>          Issue Type: Improvement
>          Components: PHP - Compiler
>            Reporter: Stanislav
>            Assignee: Stanislav
>            Priority: Major
>             Fix For: 0.14.0
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> Currently we are losing the connection between the structure enum parameter value and the enum definition itself in PHP.
>  
> The following thrift parameter which is using GroupType enum:
> {code:java}
> 5: required GroupType group_type;{code}
> Is compiled to PHP:
> {code:java}
> 5 => array(
>   'var' => 'group_type',
>   'isRequired' => true,
>   'type' => TType::I32,
>  ),{code}
>  
> Which means that we cannot say on PHP side if that is a regular *i32* or an *enum*.
> *Why do I need that?*
> I am using lowercase enum values instead of integers in database and on the frontend. Currently converting them by manually specifying the Enum Classes for enum parameters for each Structure which is not scalable, more difficult to maintain and growing over time. 
> This also makes it impossible to validate fields by Enum values on php side.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)