Guilherme, What's the status regarding the finalised PSR-0 implementation so we can hand it over to DavidC to finish the C implementation and apply this to 5.4 branch.
Cheers, - Paul On Fri, Nov 4, 2011 at 5:27 PM, guilhermebla...@gmail.com <guilhermebla...@gmail.com> wrote: > Hi Tyra3l, > > Comments are inline. > > On Fri, Nov 4, 2011 at 8:35 AM, Ferenc Kovacs <tyr...@gmail.com> wrote: >> On Fri, Nov 4, 2011 at 10:33 AM, André Rømcke <a...@ez.no> wrote: >> >>> 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? :) >> >> >> did you read the blogpost? most of your replies were cowered there. >> > > Yes. > >> "If you use lowerCamelCase on the class names or your namespace, it will >> (/should) be exactly like on disk as well." >> > > So as previously said, it just enforces that same standardization that > happens in PHP code also happens in FileSystem. > What you're pointing is not a PSR-0 a problem, it's a PHP problem. THe > PSR-0 just highlights this issue and you're blindly telling it's > SplClassLoader problem. > >> it is "consistent" between the class to file mapping, but the fact that it >> doesn't care about the underlying fs, or the fact that the classnames are >> case insensitive in php. >> which could create problems, like the following code would work: >> new \Foo; >> new \foo; >> >> but this would not: >> while >> new \foo; >> new \Foo; >> >> if the file for that class is 'Foo.php' >> I think Antony referred to this behavior as inconsistent. > > Again, PHP is a language that lacks so much of standardization that > every minimum effort to define one is treated as "against PHP's > nature". > The language is problematic, FIG/PSG are just trying to have zillions > different implementations. Everyone would expect that language to set > the standards, avoiding millions of weird pieces of code out there. As > I said earlier, once PHP decides which paradigm it would focus, we > would finally be able to standardize it. Right now we see fronts of > OO, Procedural and Functional; and it's a total mess. Look at > spl_autoload_register. It focus in class loading (OO), but you're only > able to do it through a Procedural code. > So please, stop pointing that community request A is against PHP > nature. We live by PHP and all we want is to have a minimum set of > rules to follow, rules that are language's task to provide, not ours. > >> >> "(and yes, I'm aware of some file >> system being case insensitive, but they are not used in production)" >> >> uhm, windows? >> and as I explained the mentioned inconsistency is when you use a case >> sensitive FS. >> >> "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." >> >> I think that this was pretty much answered/cowered in Anthonys blogpost and >> the other post that he linked: >> http://gooh.posterous.com/why-the-psr-0-classloader-does-not-belong-int >> Generally speaking: >> - a common class loader is a nice thing to have, everybody agrees on that. >> - but the PSR-0 was created by and for a small subset of the php >> community(framework people). > > It wasn't created by a small subset. Over 18 projects worked on it. > I doubt you'd consider Drupal, Wordpress, Zend Framework, Symfony, > Typo3, Solr, PEAR and many others a small subset. > Drupal and Wordpress by themselves are big enough to have voice over > here. And we also have many others that are here not as a single > person effort, but as a community request. This is the fact you are > not paying attention. PHP community requested that, not only a few > people. > >> - php core doesn't force/favor any coding convention/standard, why should >> it do it for PSR-0? > > PHP enforces many conventions and I can refresh your mind. Every > single keyword by itself is a convention. > Also, variables names are case sensitive. Constants are case sensitive. > The language itself also endorses a standard recommendation: > http://www.php.net/manual/en/userlandnaming.rules.php > >> >> "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? :)" >> >> first of all, I found your wording a little bit offensive (here and also in >> the "you should have tried harder.. ;)"), but to get to the point, this was >> also cowered in the linked blogpost ( >> http://gooh.posterous.com/why-the-psr-0-classloader-does-not-belong-int): >> "To stress this, I am not against having a native classloader. But I am >> against putting it into SPL when it requires PSR-0. No other function in >> PHP requires us to use a certain code convention. The argument that it is >> optional doesn’t count. It is not a general purpose classloader when I have >> to follow PSR-0 for it and thus it shouldn’t be in SPL." >> >> My personal opinion on the matter: >> - Obviously I also think that having a common autoloader between my >> components/libs is a good step forward. > > Great! We're on same page here. > >> - I don't really see that what is the point in having this in the core (as >> it was pointed out the performance gain would be negligible, as the IO is >> the bottleneck for the autoloader), except the fact that it would >> seem officially "endorsed". The frameworks would still have to ship their >> own versions because they have to support older PHP versions, where this >> isn't available. > > As always, the same applied for namespace support. Have you looked > that ZF1 is PHP 5.2+, while ZF2 is PHP 5.3+? What would you expect > from ZF3? PHP 5.4+... > Same applied to Symfony, Doctrine and many others. > But if the language is unable to provide this support for library > contributors, it's quite hard to NOT have this class in each library > to circumvent the lack of support by PHP. > >> >> I think that the best solution would be having a generic autoloader >> infrastructure in the core, and having separate autoloading strategies( >> http://en.wikipedia.org/wiki/Strategy_pattern) offered, and one of them >> could be PSR-0(we could also add the PEAR/PEAR2 autoloader, etc.). >> That way people wouldn't think that the PSR-0 is the officially >> supported/endorsed/best autoloader out there. >> >> What do you think? > > PSR-0 is already compatible with PEAR1. > Actually, it is compatible with underscore to DIRECTORY_SEPARATOR used > by many libraries in PHP 5.2 and also namespace to dir separator in > PHP 5.3. > This is not changing, and still following what PEAR standardized many > years ago, but it seems the blog post author haven't looked at > implementation for too long. > >> >> -- >> Ferenc Kovács >> @Tyr43l - http://tyrael.hu >> > > > > I may tend to agree with others that implementation is broken since > its original implementation. > After 2 years, all libraries that followed PSR-0 found out that we > require multiple paths per namespace and also a possibility to > silently fail if class loader cannot load a given class. > But the fact is PSR-0 rules are kept, nothing changed in the last 2 > years. Only the suggested implementation have changed, but again, that > was just a recommendation, not an enforcement. > > FIG/PSG is intended to define interfaces that every interest can > implement. We won't focus in PHP core functionality, but PSR-0 is the > minimum lowest reasonable standardization to any OO library to > implement, and it made sense for everyone to be in core. > I doubt any other PSR would request changes in PHP officially. > > > Cheers, > > -- > 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