2010/10/24 Giovanni Giacobbi <giova...@giacobbi.net> > > Greetings, > > in reference to bug #52713 i'd like to inquire you about this decision > which actually broke my codebase in different parts. > > The situation is this one: > > class ActiveRecord { > > public function __call($method, $args) { > if ($method == "getFoo") { > // implement some default behaviour for getFoo() > } > } > > public function __callStatic($method, $args) { > // do some other stuff > } > } > > > class Bar { > // override getFoo() to add some specific behaviour > public function getFoo() { > // do the specific stuff > parent::getFoo(); > } > } > > > Until version 5.3.2 this worked fine, starting from version 5.3.3 > parent::getFoo() calls __callStatic() instead of __call(). > > This is a really bad BC change which i thought you decided to accept only > in minor versions change and not patch-level versions change. > > Anyway, I would even be willing to do some changes to my codebase, but what > is the solution? I can't see any other way to do this with the obvious > assumptions that my design is good and that I don't know anything about the > parent class except there is a getFoo() method implemented somehow. > > My wish is that you restore the 5.3.2 behaviour, which sounds very > reasonable, and maybe introduce another way when you actually want to get > rid of the context, something like static:: > > The change has been reverted in SVN.
Thanks. -- Regards, Felipe Pena