I couldn't agree more with Anthony.  In conjunction with that, I would continue 
to question the full benefit to the community.  How many existing code 
bases/frameworks out there would implement this in favor of their existing 
solution?  

Will

On Nov 3, 2011, at 11:19 AM, Anthony Ferrara 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...
> 
> Anthony
> 
> 
> 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/
>>> 
>> 
> 
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
> 

Reply via email to