Doc #81065 [Ver->Csd]: Changes to Reflection modifiers not documented
| From: | git@php.net | Date: | Sun, 23 May 2021 12:46:43 +0000 |
| Subject: | Doc #81065 [Ver->Csd]: Changes to Reflection modifiers not documented | ||
| References: | 1 | Groups: | php.doc.bugs |
| Request: | Send a blank email to doc-bugs+get-18794@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=81065&edit=1
ID: 81065
Updated by: git@php.net
Reported by: yuki dot nishida at sys21 dot co dot jp
Summary: Changes to Reflection modifiers not documented
-Status: Verified
+Status: Closed
Type: Documentation Problem
Package: Reflection related
Operating System: none
PHP Version: 7.3.28
Block user comment: N
Private report: N
New Comment:
Automatic comment on behalf of cmb69
Revision: https://github.com/php/doc-en/commit/6f41560bf19de74e2dfbc78f4175d35f5b378abe
Log: Fix #81065: Changes to Reflection modifiers not documented
Previous Comments:
------------------------------------------------------------------------
[2021-05-21 11:34:52] cmb@php.net
Ah, right, we either need to update the values (and add changelog
entries), or maybe not show the values at all. We also need to
update related examples accordingly, e.g.
<https://www.php.net/manual/en/reflectionmethod.getmodifiers.php#refsect1-reflectionmethod.getmodifiers-examples>.
------------------------------------------------------------------------
[2021-05-21 11:17:39] imsop@php.net
I agree that the manual should be clearer here. There are probably other similar constants which are
exposed from internal values and subject to change between versions.
* We should have a standard note such as "The values of constants may change between versions
or environments. It is recommended to always use the constants directly and not rely on the values
directly."
* Should we show the values for these at all, since users shouldn't be relying on them?
------------------------------------------------------------------------
[2021-05-21 11:12:09] yuki dot nishida at sys21 dot co dot jp
I'm sorry!
I forgot about this one...(*'omega'*)
It's not on the changelog, which I think is the most confusing thing about it.
I'd like to see the change of the actual value of algebraic constants in the changelog.
I'm sorry. I'm sorry. I think this is the essence of what I want to request.
------------------------------------------------------------------------
[2021-05-21 11:03:02] yuki dot nishida at sys21 dot co dot jp
Description:
------------
The constant value is different in different versions, so it may need to be annotated.
ReflectionProperty (also ReflectionMethod)::IS_XXXX
In my program, constant values are used in bitwise operations (logical products), and I noticed that
I was facing a problem where bits with different numbers of digits could not be calculated with each
other.
(Sorry, I'm Japanese and not good at English, so I'm using a translation tool, so please
forgive any grammatical errors.
) I checked the source code from Git, and it is listed at the bottom of this column.
I apologize for the poor quality of this document, but I would appreciate it if you could help my
future students.
Thank you for reading to the end.
-----checked the source code ------
[source1]
php-src/ext/reflection/php_reflection.c
// new (7.4)
6996 REGISTER_REFLECTION_CLASS_CONST_LONG(property, "IS_PUBLIC", ZEND_ACC_PUBLIC);
6997 REGISTER_REFLECTION_CLASS_CONST_LONG(property, "IS_PROTECTED", ZEND_ACC_PROTECTED);
6998 REGISTER_REFLECTION_CLASS_CONST_LONG(property, "IS_PRIVATE", ZEND_ACC_PRIVATE);
[source1]
php-src/Zend/zend_compile.h
// changed version (7.4)
203 #define ZEND_ACC_PUBLIC (1 << 0) /* | X | X | X */ // -> 1
204 #define ZEND_ACC_PROTECTED (1 << 1) /* | X | X | X */ // -> 2
205 #define ZEND_ACC_PRIVATE (1 << 2) /* | X | X | X */ // -> 4
//old (5.4) -> my use version... sory!!
130 #define ZEND_ACC_PUBLIC 0x100 // -> 256
131 #define ZEND_ACC_PROTECTED 0x200 // -> 512
132 #define ZEND_ACC_PRIVATE 0x400 // -> 1024
// old (7.3.28)
212 #define ZEND_ACC_PUBLIC (1 << 8) /* | X | X | X */ // ->
256
213 #define ZEND_ACC_PROTECTED (1 << 9) /* | X | X | X */ // ->
512
214 #define ZEND_ACC_PRIVATE (1 << 10) /* | X | X | X */ // ->
1024
Expected result:
----------------
https://www.php.net/manual/en/class.reflectionproperty
I think it would be desirable to have annotations added to this page.
Actual result:
--------------
There are no annotations.
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=81065&edit=1