php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Request #63471 Make properties final on runtime
Submitted: 2012-11-09 09:59 UTC Modified: -
From: daniel at baz-x dot at Assigned:
Status: Open Package: Reflection related
PHP Version: 5.4.8 OS: Any
Private report: No CVE-ID: None
View Add Comment Developer Edit
Welcome! If you don't have a Git account, you can't do anything here.
You can add a comment by following this link or if you reported this bug, you can edit this bug over here.
(description)
Block user comment
Status: Assign to:
Package:
Bug Type:
Summary:
From: daniel at baz-x dot at
New email:
PHP Version: OS:

 

 [2012-11-09 09:59 UTC] daniel at baz-x dot at
Description:
------------
I have developed a class that tries to mimic java like enums as much as possible 
(only the simple ones, see provided urls for the example). The only difficulty I 
got is that it's still possible to overwrite the static variables which makes the 
enum quite insecure.
As I would like to keep it as much as it's like in java I would like to request 
for a reflection method to make properties final (at least for the static ones) 
like ReflectionProperty->setFinal().

Test script:
---------------
Enum class:
https://dl.dropbox.com/u/11045888/Enum.php.txt

Implementation:
https://dl.dropbox.com/u/11045888/QueryType.php.txt


Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2012-11-09 17:56 UTC] mail+php at requinix dot net
There's actually an RFC for an enum type: https://wiki.php.net/rfc/enum.
 [2012-11-10 18:20 UTC] daniel at baz-x dot at
Ah ok, but this request is not only restricted to enums. It could also be used in 
constructors to fill properties (especially with objects) and make them final 
afterwards so they can't be changed just like in java.
Of what I've read on the rfc is that it seems like those enums won't behave like 
objects while my implementation provides methods (sorry for the bad english).
 
PHP Copyright © 2001-2019 The PHP Group
All rights reserved.
Last updated: Mon Nov 18 23:01:35 2019 UTC