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

Reply via email to