Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:21407 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 94333 invoked by uid 1010); 4 Jan 2006 12:01:24 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 94317 invoked from network); 4 Jan 2006 12:01:24 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 4 Jan 2006 12:01:24 -0000 X-Host-Fingerprint: 81.169.182.136 ajaxatwork.net Linux 2.4/2.6 Received: from ([81.169.182.136:45631] helo=strato.aixcept.de) by pb1.pair.com (ecelerity 2.0 beta r(6323M)) with SMTP id 28/D4-34518-319BBB34 for ; Wed, 04 Jan 2006 07:01:23 -0500 Received: from [192.168.1.3] (dslb-084-063-000-198.pools.arcor-ip.net [84.63.0.198]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by strato.aixcept.de (Postfix) with ESMTP id 040F735C1D8; Wed, 4 Jan 2006 13:01:17 +0100 (CET) Date: Wed, 4 Jan 2006 13:01:17 +0100 Reply-To: Marcus Boerger X-Priority: 3 (Normal) Message-ID: <1147247476.20060104130117@marcus-boerger.de> To: Lukas Smith Cc: Stanislav Malyshev , php internals In-Reply-To: <43BBB6A0.1070800@php.net> References: <20060103205728.GF26280@desario.homelinux.net> <7.0.0.16.2.20060103154506.043678e8@zend.com> <829348376.20060104010548@marcus-boerger.de> <1594973025.20060104122023@marcus-boerger.de> <43BBB6A0.1070800@php.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Subject: Re: [PHP-DEV] __call overload detection From: helly@php.net (Marcus Boerger) Hello Lukas, that's right now also impossible. We would need an api change for that. Or we would need to have the interface support deeply in the engine like we have with the iterators. If that is ok for all among the engine developers i think i can easily add it. marcus Wednesday, January 4, 2006, 12:50:56 PM, you wrote: > Stanislav Malyshev wrote: >> MB>> but that is a way of having __call that obviously doesn't fit the real >> MB>>world. In a real world application i only implement a few things with call >> MB>>and dislike having all the others implemented automatically also. And the >> MB>>i have to care about error generation while the engine could help me a lot >> MB>>so that my error messages look and behave just like they would if there >> MB>>is no __call. But that would indeed require some __exists() or >> MB>>__implemented() support(). >> >> Nothing prevents you from having __implemented or __whateveryoulike. >> However, I don't see how engine could know beforehand if your __call would >> succeed or not, so __implemented has no relation whatsoever to __call, >> unless you make this relation in your code - and engine can't know you >> did. > I think its obvious that you can implement things in userland or inside > the engine. The main advantage of doing it inside the engine is that it > then becomes the standard way of doing things, where as with userland > its likely that several competing "standards" will emerge. Not because > of real advantages, but just because of lack of a central standard. > However maybe its sufficient to just have an interface that defines the > signature of such a "check if method is implemented by __call()" method > along with a bit of text. That should imho be a sufficient approach. > Without the need of adding yet another magic method to the engine itself. > regards, > Lukas Best regards, Marcus