Re: RE: STH and the 3 RFCs

From: Date: Mon, 16 Mar 2015 14:52:17 +0000
Subject: Re: RE: STH and the 3 RFCs
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-85064@lists.php.net to get a copy of this message
On 16/03/2015 14:45, Theodore Brown wrote:
On Monday March 16 at 9:33 am Thomas Punt wrote:
Strictly speaking (pun intended), this is not true. A library can easily expose a facade that enforces a user of that library (who is in weak mode) to have to write in strict mode [1]. Once more, this can be done unintentionally [2] because of the caller-deciding semantics. These examples can be further extended into wrapper classes, nested library dependencies, etc. Sure, you could argue that this could easily be turned off by simply removing the top declare() statement of that library, but modifying the library in itself introduces complications - especially when using dependency managers like Composer. [1] https://gist.github.com/tpunt/4830d18d47e2df021c2f [2] https://gist.github.com/tpunt/eecfed2495bdccb73632
This is a bug in the library. It declares strict mode but passes a value it does not know to be an integer to a method requiring an integer. It can be fixed by simply adding an int type declaration to the constructor or test method.
Indeed if you enable strict mode you definitely should type-hint all the things *or* validate your inputs. That's a fairly obvious requirement IMO. Cheers

« previous php.internals (#85064) next »