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
Have you experienced this issue?
Rate the importance of this bug to you:

 [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: Sat Dec 14 18:01:24 2019 UTC