Req #53439 [Asn->Nab]: DatePeriod does not expose any properties

From: Date: Fri, 24 Mar 2017 06:47:20 +0000
Subject: Req #53439 [Asn->Nab]: DatePeriod does not expose any properties
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-208044@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=53439&edit=1 ID: 53439 Updated by: heiglandreas@php.net Reported by: from dot php dot net at brainbox dot cz Summary: DatePeriod does not expose any properties -Status: Assigned +Status: Not a bug Type: Feature/Change Request Package: Date/time related Operating System: Windows XP SP3 PHP Version: 5.3.3 Assigned To: derick Block user comment: N Private report: N New Comment: There's no need to access the internal properties when you want to extend the class. It's entirely up to the person designing the class to expose them or not. Here they are not exposed. So if you want to extend the class you will need to use the public methods to get the information you need to handle whatever your extending class should achieve. Therefore it'S not a bug but a feature. Previous Comments: ------------------------------------------------------------------------ [2014-02-06 13:51:17] arjen at react dot com Fixed since 5.3.27/5.4.17, see http://3v4l.org/r0mFG#v5327 Probably by https://bugs.php.net/bug.php?id=53437 ------------------------------------------------------------------------ [2012-08-30 09:30:35] rdohms@php.net Same thing happens with DateInterval ------------------------------------------------------------------------ [2012-05-30 19:15:28] krebs dot seb at googlemail dot com Anything new here? As far as I understood cataphract a patch exists. What happened to it? ------------------------------------------------------------------------ [2011-01-09 06:00:13] cataphract@php.net Reassigning to Derick, as the patch I've written is under his consideration. ------------------------------------------------------------------------ [2010-12-01 17:58:19] from dot php dot net at brainbox dot cz Description: ------------ The DatePeriod instance does not expose its internal properties, thus makes impossible to extend the class. The properties are not visible in the reflection as well. Also, when I cast the instance to array (which usually exposes all properties), no props are shown. The draft of the test follows. Test script: --------------- $dp = new DatePeriod(new DateTime('2010-01-01'), new DateInterval('P1D'), 2); $r = new ReflectionObject($dp); $arr = (array)$dp; // cast to array to see the values of propeties echo "Properties:\r\n"; foreach($r->getProperties() as $v) { echo $v->getName()."\r\n"; } echo "\r\n"; echo "Methods:\r\n"; foreach($r->getMethods() as $v) { echo $v->getName()."\r\n"; } echo "\r\n"; echo "Array cast:\r\n"; echo strtr(print_r($arr, true), "\0", '_'); Expected result: ---------------- Properties: any_valid_properties... ...listed_here_after_implementing Array cast: Array ( any_valid_properties... ...listed_here_after_implementing ) Actual result: -------------- Properties: Array cast: Array ( ) ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=53439&edit=1

« previous php.bugs (#208044) next »