Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:22515 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 99920 invoked by uid 1010); 17 Mar 2006 23:53:47 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 99905 invoked from network); 17 Mar 2006 23:53:47 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 17 Mar 2006 23:53:47 -0000 X-Host-Fingerprint: 80.123.98.46 unknown Received: from ([80.123.98.46:1195] helo=localhost.localdomain) by pb1.pair.com (ecelerity 2.0 beta r(6323M)) with SMTP id E9/D6-55982-B0C4B144 for ; Fri, 17 Mar 2006 18:53:47 -0500 Message-ID: To: internals@lists.php.net Date: Sat, 18 Mar 2006 00:53:52 +0100 User-Agent: Mozilla Thunderbird 1.0.7 (X11/20051013) X-Accept-Language: en-us, en MIME-Version: 1.0 References: <123559964.20060318003307@marcus-boerger.de> In-Reply-To: <123559964.20060318003307@marcus-boerger.de> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Posted-By: 80.123.98.46 Subject: Re: [PHP-DEV] Re: Please review: new output control implementation From: mike@php.net (Michael Wallner) Marcus Boerger wrote: > I'd say the only thing that doesn't look ten times better than what we have right now is that you have exported > function prefixed with underscore "PHPAPI int _php_output" and static ones without. Imo it should be the other way > round. This is because the TSRM macros don't have underscores, so one uses php_output_flush() instead of _php_output_flush(TSRMLS_C) of course. So the public API except that used in main.c or in SAPIs is TSRM macro free (like in the streams layer or pecl/http and possibly else where). > The open question i have however is how do you deal with unicode. I saw some estr*() calls where i would have > expected a few unicode checks. So there is no unicode support right now. So i suggest you add that too. I don't yet see why output control should know about or handle unicode differently, it basically just shovels binary data around. I didn't dive into the unicode stuff yet, so I might be quite off... > A think i am a bit curious yout is why some function have both *() and *_all() versions. Why didn't you choose to > pass an int in? Because the *_all() functions don't honor if the handler is cleanable and/or removable, those are ultimate functions like for shutting down the output control layer. I think it's better to have separate functions to emphasize this difference. > Last but not least i wonder why i am seeing use of the strange TSRMLS_FETCH_FROM_CTX() instead of passing TSRM keys > using TSRMLS_* macros. This is only used in zend_stack_apply callbacks which don't support TSRM by signature. Thanks, -- Michael - http://dev.iworks.at/ext-http/http-functions.html.gz