Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
0.6.1
-
None
-
None
Description
Reported on IRC:
If an interface calls for an enum that defines a constant that's an invalid identifier in PHP (e.g. "GLOBAL") the generated code contains a syntax error.
Example, from the Hive Metastore Thrift interface:
enum HiveObjectType {
GLOBAL = 1,
DATABASE = 2,
TABLE = 3,
PARTITION = 4,
COLUMN = 5,
}
Generates the following PHP:
final class metastore_HiveObjectType { const GLOBAL = 1; const DATABASE = 2; const TABLE = 3; const PARTITION = 4; const COLUMN = 5; static public $__names = array( 1 => 'GLOBAL', 2 => 'DATABASE', 3 => 'TABLE', 4 => 'PARTITION', 5 => 'COLUMN', ); }
I suggest we prefix enum constants to avoid this situation, although this would mean the interface didn't match.