On Sat, Sep 17, 2011 at 17:15, Laruence <larue...@php.net> wrote: > Hi: > this is really a big bc break...(fatal error) > is there any reason for us to really change this? In Yaf, there > are a lot of Abstract classes, the subclass only need declared there > argument when they really need it. >
Well, that is wrong. if you declare an abstract method with a set of arguments, classes implementing that method should be compatible with that set of arguments. > > and I really not think this change is good one, the Intenal class > can not be saw by userland(sure, doc, reflection), so they only get > the FATAL ERROR(you are wrong) but will never be told how should they > to do.. Given that we have been quite flexible with this in the past, I don't believe a E_FATAL is warranted here, might be better suited as a E_STRICT, as there is no apparent reason why this would prevent the engine to continue. > thanks > > 2011/9/17 Ferenc Kovacs <tyr...@gmail.com>: > > maybe Richard referring to https://bugs.php.net/bug.php?id=55085 ? > > but those change only affects the abstract classes. > > > > Tyrael > > > > On Sat, Sep 17, 2011 at 3:43 PM, Nikita Popov <nikita....@googlemail.com> > wrote: > >> Hi Richard! > >> > >> Which change are you talking about? I just tried doing: > >> <?php > >> class A { public function __construct($a) { } } > >> class B extends A { public function __construct($a, $b) { } } > >> And it worked on 5.4 Beta 1 without errors. > >> > >> Nikita > >> > >> On Sat, Sep 17, 2011 at 3:27 PM, Richard Quadling <rquadl...@gmail.com> > wrote: > >>> Hi. > >>> > >>> With the recent BC with regard the locking of the constructor's > >>> signature for subclasses, what is the expected mechanism for allowing > >>> a subclass to have additional parameters? > >>> > >>> You can always supply them and use func_get_args() / func_num_args() / > >>> etc. to read them. > >>> > >>> It would seem that the limitation restricts the capabilities. I'm not > >>> a purist. Software development is a compromise between purity and > >>> getting the job done in an efficient and understandable manner. > >>> > >>> By allowing undocumented parameters to the constructor (due to the > >>> enforced signature), this would seem to break things on a different > >>> front (I can't docblock non defined parameters for examples). > >> > >> -- > >> PHP Internals - PHP Runtime Development Mailing List > >> To unsubscribe, visit: http://www.php.net/unsub.php > >> > >> > > > > > > > > -- > > Ferenc Kovács > > @Tyr43l - http://tyrael.hu > > > > -- > > PHP Internals - PHP Runtime Development Mailing List > > To unsubscribe, visit: http://www.php.net/unsub.php > > > > > > > > -- > Laruence Xinchen Hui > http://www.laruence.com/ > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php > > -- Etienne Kneuss http://www.colder.ch