On Thu, Nov 3, 2011 at 7:30 PM, Anthony Ferrara <ircmax...@gmail.com> wrote:

> Paul,
>
> I wasn't saying whether it should be included or not.  I was saying
> that performance should not be a justification for it being included.
> It may be a benefit, but it's a very small side benefit as opposed to
> a primary one.
>
> Additionally, I wholeheartedly disagree with one of your points there:
>
> > With the point to being included in /ext/spl/; is to give a sense of
> > "justification" of this standard and a base in which to push forward.
>
> I was going to write a long rebuttal to the whole concept here, but I
> realized that wouldn't really be a good thing for the list.  So I put
> it in a blog post as it's more of a personal opinion...
>
> http://blog.ircmaxell.com/2011/11/on-psr-0-being-included-in-phps-core.html




> I've tried to stay out of the discussion and have successfully done so.
Until today. I feel that there's something that's been missing to the
discussion.

There is nothing missing in this discussion Anthony, you should have tried
harder.. ;)

> Recently there has been a rather heated and intense discussion on (...)

That is php internals in a nutshell, not a good thing indeed but not
specific to this thread.

 > Issue #1 - It is inconsistent
Being that the only argument here is case sensitivity: Imho PSR-0 is very
consistent.
If you use lowerCamelCase on the class names or your namespace, it will
(/should) be exactly like on disk as well. (and yes, I'm aware of some file
system being case insensitive, but they are not used in production)


> Issue #2 - It is not a standard

You are partly right on this one, but someone might argue that it is a de
facto standard as it is picking up steam in all major frameworks (of
importance).
Which might be a clear sign that the php community wants more widespread
standards, conventions and collaboration.


> Issue #3 - There's nothing for the core to gain

This will not be forced on anyone.
It will be a more modern alternative to
http://www.php.net/manual/en/function.spl-autoload.php
So yes, there is already something like this in core, so I really don't get
why you are so against this, not seeing the wood for the trees? :)




>
>
> Anthony
>
> On Thu, Nov 3, 2011 at 12:07 PM, Paul Dragoonis <dragoo...@gmail.com>
> wrote:
> > On Thu, Nov 3, 2011 at 3: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...
> >>
> >> Anthony
> > Basically, theres approx a dozen of the most recognised PHP libraries
> > that are advocating the use of a generalised class mapping standard.
> >
> > This is great, and allows switching between projects very seamless as
> > there's no additional learning curve.
> > while(consistency) learning_curve--;
> >
> > If library vendors are implementing their own custom autoloading
> > structure/mechanism it's very counter-productive to the PHP
> > eco-system. The point of PSR-0 is to create a standard to allow
> > compatibility between vendor libs such as ZF/Symfony/PPI.
> >
> > With the point to being included in /ext/spl/; is to give a sense of
> > "justification" of this standard and a base in which to push forward.
> > It's also giving existing lib vendors to easily switch to a well-built
> > autoloading mechanism bundled with PHP rather than relying on
> > third-party code to provide that. Additionally the small performance
> > boost but including SplClassLoader is not driven by the speed benefit
> > but by the community/library benefit.
> >
> > This appears to be the general consensus of PSR-0 and my opinion on the
> matter.
> >
> > Regards,
> > Paul Dragoonis.
> >
> >>
> >>
> >> 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
> >>
> >>
> >
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>

Reply via email to