Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:38466 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 65863 invoked from network); 20 Jun 2008 14:28:53 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 20 Jun 2008 14:28:53 -0000 Authentication-Results: pb1.pair.com header.from=helly@php.net; sender-id=unknown Authentication-Results: pb1.pair.com smtp.mail=helly@php.net; spf=unknown; sender-id=unknown Received-SPF: unknown (pb1.pair.com: domain php.net does not designate 85.214.94.56 as permitted sender) X-PHP-List-Original-Sender: helly@php.net X-Host-Fingerprint: 85.214.94.56 aixcept.net Linux 2.6 Received: from [85.214.94.56] ([85.214.94.56:53597] helo=h1149922.serverkompetenz.net) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 90/CC-16112-3AEBB584 for ; Fri, 20 Jun 2008 10:28:53 -0400 Received: from MBOERGER-ZRH (unknown [193.142.125.1]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by h1149922.serverkompetenz.net (Postfix) with ESMTP id 9CAD011F3E6; Fri, 20 Jun 2008 16:28:48 +0200 (CEST) Date: Fri, 20 Jun 2008 16:28:48 +0200 Reply-To: Marcus Boerger X-Priority: 3 (Normal) Message-ID: <149395553.20080620162848@marcus-boerger.de> To: "Tinsley, Mark" CC: internals@lists.php.net In-Reply-To: <0489D0DE749FD2489EEB99455DEB6A7F08178926@svr-fp-exch.dalair.com> References: <0489D0DE749FD2489EEB99455DEB6A7F08178926@svr-fp-exch.dalair.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Transfer-Encoding: 8bit Subject: Re: [PHP-DEV] Overloading From: helly@php.net (Marcus Boerger) Hello Mark, we discussed overloading a hell lot of times an dthe conclusionj always and every single time has been NO. It would mean a large slowdown for every single PHP application out there and it is not really that much halpful. In fact it makes code less readable and maintainable so it opposes the KISS (Keep It Simple Safe) approach of PHP. marcus Friday, June 20, 2008, 2:51:44 PM, you wrote: > I only could find two from 2005. > http://news.php.net/php.internals/17491 > http://news.php.net/php.internals/14558 > It doesn't look like much discussion. I'm new to that web interface; not > sure if it will show the thread. > Why don't we discuss adding this to the PHP6 release? I see it as a very > helpful addition and can't see a reason why we could not add it. > Mark > -----Original Message----- > From: Saulo Vallory [mailto:saulovallory@gmail.com] > Sent: Thursday, June 19, 2008 11:12 AM > To: internals Mailing List > Subject: Re: [PHP-DEV] Overloading > I'm developing a PHP framework and had the same issue sometimes... I > think > it was already discussed in the list, did you searched the archives? > Saulo > On Thu, Jun 19, 2008 at 9:58 AM, Tinsley, Mark > > wrote: >> What about the addition of overloading for PHP 6? >> >> I am not totally up to date on the developments of the parameter type >> hints. I briefly read the meeting minutes for PHP 6. >> >> What about with the type hints we have now? >> >> class moo >> { >> >> public static function foo(FooClass $FooVar) >> { >> // do something >> } >> >> public static function foo(BooClass $BooVar) >> { >> // do something >> } >> } >> >> >> I have a project where we had to do a sort of pseudo overloading >> >> Class moo >> { >> /** >> * Accept the superclass or any of its sub classes >> */ >> public static function foo(FooSuperClass $Foo) >> { >> switch (true) >> { >> case $Foo instanceof FooClass: >> $method = 'fooFoo'; >> break; >> >> case $Foo instanceof BooClass: >> $method = 'fooBoo'; >> break; >> >> default: >> throw new Exception('Unrecognized type: ' . >> get_class($Foo)); >> break; >> } >> >> call_user_func(array(self, $method), $Foo); >> } >> >> private static function fooFoo(FooClass $FooVar) >> { >> // do something >> } >> >> private static function fooBoo(BooClass $BooVar) >> { >> // do something >> } >> } >> >> Mark >> >> >> >> -- >> PHP Internals - PHP Runtime Development Mailing List >> To unsubscribe, visit: http://www.php.net/unsub.php >> >> Best regards, Marcus