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: 2021-12-02 22:55 UTC
From: daniel at baz-x dot at Assigned: ilutov (profile)
Status: Closed Package: Reflection related
PHP Version: 5.4.8 OS: Any
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If this is not your bug, you can add a comment by following this link.
If this is your bug, but you forgot your password, you can retrieve your password here.
Password:
Status:
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).
 [2021-12-02 22:55 UTC] ilutov@php.net
-Status: Open +Status: Closed -Assigned To: +Assigned To: ilutov
 [2021-12-02 22:55 UTC] ilutov@php.net
Thank you for your bug report. This issue has already been fixed
in the latest released version of PHP, which you can download at
http://www.php.net/downloads.php

PHP 8.1 adds native enum support. We also have readonly properties, although static properties aren't supported. Making properties readonly now through other means is probably not a great idea.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Fri Mar 29 13:01:29 2024 UTC