On Thu, Nov 3, 2011 at 4:19 PM, Anthony Ferrara <ircmax...@gmail.com> wrote:
> Can I make a point here. > > Why the heck are we caring about the performance of the autoloader at > all here? The filesystem operations necessary (at least the stat() > call) will greatly dominate any string function. And considering that > even the biggest framework only has perhaps a few hundred classes, > you're talking about incredibly small performance gains here. Even if > you save a microsecond in string operations (try it, even in PHP the > string operations can be done in around 10 or 20 microseconds), after > all classes are loaded you're only talking about a 1 or 2 milliseconds > of gain in the application. > > I'm not saying that we shouldn't try to save time where we can, but > given the controversial nature of this addition, I don't think that a > micro-optimization (which is what this really is) should be used as a > justification for why it should be included. It's not like we're > talking about implementing a computationally difficult task into C > (such as a cryptographic algorithm) where putting it into C would > create a huge performance gain. We're talking about implementing a > function which already is dominated by non-computational overhead into > C to save a few milliseconds. The number of instances that will > benefit from such an addition are incredibly small. Saving 2 > milliseconds on an application (that likely takes hundreds of > milliseconds to render) would require a huge number of requests to > amortize into an actual measurable benefit. And those that do benefit > would have access to their server farm to add the pecl extension > anyway. So there's really no practical performance gain to the > community as a whole, hence confirming that this is a > micro-optimization. > > Personally I feel that this does not belong in the core (especially > not yet as with the inconsistencies). > > But that's besides the point. I just want to emphasize the point that > performance should not be a criteria for justifying it going into the > core... You mixing up one of my personal objectives* with the poster's objective** (which I also share). * making the class map based vs convention based performance discussion moot, making sure more people will standardize around PSR-0 ** making sure there is a autoloader in php that follows a convention that people actually use, and further standardized how such a basic thing is done in php projects in the wild. > > > > On Thu, Nov 3, 2011 at 10:56 AM, André Rømcke <a...@ez.no> wrote: > > On Thu, Oct 27, 2011 at 4:30 AM, Laruence <larue...@php.net> wrote: > > > >> 2011/10/26 André Rømcke <a...@ez.no>: > >> > On Tue, Oct 25, 2011 at 4:39 AM, guilhermebla...@gmail.com < > >> > guilhermebla...@gmail.com> wrote: > >> > > >> >> Hi internals, > >> >> > >> >> For all those interested, I have updated the RFC with better > >> >> explanation, included example implementation and also example usage. > >> >> If you have any other wishes, doubts, etc, feel free to ask on this > >> >> thread and I'll quickly answer here and also update the RFC > >> >> accordingly. > >> >> > >> > > >> > > >> > As sent to the PHP-SWG list, a small change / addition to PSR-0 would > >> > simplify the matching considerably. > >> > > >> > If this rule: > >> > * Each “_” character in the CLASS NAME is converted to a > >> > DIRECTORY_SEPARATOR. The “_” character has no special meaning in the > >> > namespace. > >> > > >> > is changed to > >> > * Each “_” character in the CLASS NAME and NAMESPACE is converted to a > >> > DIRECTORY_SEPARATOR. > >> There is a internal autoloader in > >> Yaf(http://svn.php.net/viewvc/pecl/yaf/trunk/yaf_loader.c?view=markup), > >> in it the T_NS_SEPARATOR will convert to be "_", then convert to be > >> DIRECTORY_SEPARATOR. > >> > >> thanks > >> > > > > > > As mentioned by others this will have to go into a new PSR standard as > > PSR-0 was accepted 2 years ago. > > > > And assuming that a C implementation will greatly out-weight the reduced > > amount of str functions in terms performance we should not block this > > process to get it into 5.4 by taking up off-topic subjects like > mentioning > > things not part of PSR-0. > > > > But! > > > > The implementation proposal (rfc) should be adjusted to be > > forward compatible, including support for several namespaces pr instance > > (mention by several on PSR mailing list) imho. > > > > Possible example (additional arguments can be added later when more > > features are added, aka a PSR-1 mode): > > > > new SplClassLoader( array( 'Doctrine\Common' => '/path/to/doctrine' ) ); > > > > > > Or something like this (if we want the options to be an array): > > > > new SplClassLoader( array( 'ns' => array( 'Doctrine\Common' => > > '/path/to/doctrine' ) ) ); > > > > > > For documentation and argument validation, imo the former approach would > be > > better. > > So what is the status here? thread has been silent for a while. > > > > > >> > > >> > Or a strict mode is added to enable that, then you'll reduce 6 string > >> > function to 2, and still have backward support for PEAR class > naming(w/o > >> > namespace). > >> > > >> > > >> > > >> > > >> >> The url for the RFC is: https://wiki.php.net/rfc/splclassloader > >> >> > >> >> Cheers, > >> >> > >> >> On Mon, Oct 24, 2011 at 7:55 PM, David Coallier <dav...@php.net> > wrote: > >> >> >> > >> >> >> Could you open a FR at bugs.php.net and attach the patch to it > >> please? > >> >> >> Could be easier to track (and the # to the RFC too :) > >> >> >> > >> >> > > >> >> > Yeah I'll do that once I have the tests adjusted and once I know > the > >> >> > patch actually works as expected. > >> >> > > >> >> > -- > >> >> > David Coallier > >> >> > > >> >> > -- > >> >> > PHP Internals - PHP Runtime Development Mailing List > >> >> > To unsubscribe, visit: http://www.php.net/unsub.php > >> >> > > >> >> > > >> >> > >> >> > >> >> > >> >> -- > >> >> Guilherme Blanco > >> >> Mobile: +55 (11) 8118-4422 > >> >> MSN: guilhermebla...@hotmail.com > >> >> São Paulo - SP/Brazil > >> >> > >> >> -- > >> >> PHP Internals - PHP Runtime Development Mailing List > >> >> To unsubscribe, visit: http://www.php.net/unsub.php > >> >> > >> >> > >> > > >> > >> > >> > >> -- > >> Laruence Xinchen Hui > >> http://www.laruence.com/ > >> > > >