The PHP standards initiative

Much has been said already in the past days and weeks about the PHP standards initiative that was started by a group of PHP developers at the php|tek conference two weeks ago. As I was there but have not really given my opinion on this in public, I will do that now.

The history

While being at php|tek I got invited to a meeting initiated by the PEAR people on frameworks, and more specifically naming conventions for PHP5.3. Even though I have no official role in the symfony project, I decided to accept because the purpose of the meeting seemed good and if I could somehow contribute to it, that should help the php community at large. Also, during the meeting I've stated several times (to make it clear) that I could not have an official say in this. However, I've offered some input on some issues that I think and hope have helped form the document that is now available.

The purpose

At this moment, it is sometimes very hard to combine different libraries that use different autoloading logic. The most important purpose of the meeting was to make it more clear how to handle naming and autoloading amongst different frameworks. During the work on PEAR2, the PEAR group have written up a proposal for a new standard that they thought is a good solution to this problem. While at the meeting at php|tek, several parts of this proposal have been discussed by leaders and members of different framework teams. There was an official presence of Zend Framework, Solar, Agavi, Cake and PEAR and amongst the unofficial representation were Phing and symfony. This is an impressive collection of the currently popular frameworks. And those present were there to try and get a good standard proposed for the handling of the discussed topics. And I think we succeeded in getting a good, workable standard in a first draft.

The target audience

One thing that has not been clear in the communication over the past weeks has been the target audience for the proposed standards. Even though any PHP developer is obviously welcome to adopt the proposed standards, the main target audience of the standard is the group of (official) people present during the meeting as well as any other big (or small, really) framework or library that is interested in or willing to adopt the standard. The standard should not be seen as a law, yet more as a recommendation on how to handle things most efficiently. The people that use the libraries won't really notice much of the standards being implemented, aside from the fact that it makes their life more easy to combine several different libraries without having to juggle with autoloaders and such.

The discussion

Most of the current discussion seems not to handle around the fact that we're trying to get a standard out there. The main discussion seems to handle around the fact that we were trying to get a moderated/closed mailinglist on lists.php.net. While I can understand the votes for more openness, I think the current situation is already open enough for the purpose. Those who represent a library or framework can apply for membership, and when approved will have a vote in the standards. The fact that the list is not open is avoid the meaningless and cluttering discussions as we sometimes see happening on the internals list. Since most people that would voice their opinion would hardly be affected by the standard, this would mean a lot of work for those inside the standards group to parse and compute all the feedback, respond to it, and/or filter the noise from the useful information. By having those that are actually affected most by the standard to be able to discuss with those less or not at all affected not able to discuss the topic, speed and quality is given preference over unclarity and fully open discussion. This is, for this specific purpose, not a bad thing if you ask me.

How to move forward

At this point, there is quite some discussion on how to move forward. I think the call from Michael J Burgess was the best so far: he basically says "let's cut the bullshit, stop discussing purpose and form, and start moving on to form some good and useful standards". And I have all faith in the PHP standards group to do just that, whatever way they choose. I hope to be able to contribute more in the future and will continue to support the initiative. In the end, the group is a community effort (albeit a small subset of the community) meant as a permanent improvement for the whole of the community (or well, most of it). So let's now cut the bullshit and move on.


Add comment

Comments

gravatar microscope parts test online: no one is monogamous these days. to love otherwise is mere imperfection. helping you to understand microscopy techniques and current research. using an electron microscope, microbiologists have identified three basic virus shapes: helical, polyhedral, and complex. us health care workers benefit as medical scrubs receive a high-tech makeover
February 28, 2013
gravatar glutathione collagen belo: 1.0 out of 5 stars see all reviews (1 customer review). many people wonder how an oxygen concentrator works if it does not utilize compressed oxygen, the answer is simple. bullies actively search for those who are vulnerable, those who seem helpless. after brushing your teeth normally, use a mixture of baking soda and salt, and gently scrub your teeth, being careful to brush softly around your gums so as not to irritate them.
March 11, 2013
gravatar SEO Expert: Glad to read your post :) . It is very informative!
May 10, 2013
gravatar Buy Phen375 In Vegas: hawaii phentermine 37.5 mg efectos secundarios in a weight loss process obese patients have not only eating less but also increasing its level of physical activities. unfortunately, both the tasks are near to impossible for most overweight people. therefore obese patients always search an easy solution for its weight loss and diet pills are good research for this task. 4) 25% completely sedentary calories intake
May 16, 2013

Php5_zce_logo

Tags

1337 2008 2010 2011 4developers access modifiers accessibility AdaLovelaceDay09 advent agavi agile alfred amsterdam amsterdamphp apache api apple article articles atk atkMetaNode audioscrobbler autoloading automation azure backwards compatibility barcelona barcodes bash bbc bbq beatstad belgium best practices bittorrent blogging blogs boards of canada book books bughuntday bundle caching cake cal evans calendar career cat cerf certificate cfp cilex clear cms cologne common sense communities community components composer conference conferences contest continuous integration contribute contribution crisis css curl custom d-day data migration datetime DbFinderPlugin decorator decorators deployment deps devdays development directoryindex directoryiterator docblox doctrine doctrine2 documentation download dpc dpc09 dpc10 dpc11 DPC2008 dreamhost drupal dv7 eclipse ed editors efficiency enterprise errors event events expertise ezcomponents facebook filter-branch filteriterator finland flickr fork framework frameworks free ticket freelance freeze frontend fun game games geoip germany getting real git github globiterator gnome-do google google calendar googletalk graceful degradation hack hackers hidden gem hiphop howto hp HR html http i386 ibuildings icann ide ideasofmarch idm imovie inclusivity indy ingewikkeld integration international php conference internet interview ipad IPC ipc ipc08 ipc10 ipc11se iterators iterm2 javascript jenkins jenkins-php job job openings jobeet john peel joomla joomladays kiva kubuntu launcher launchy left on the web libcurl libraries library lighttpd lime linktuesday linux live london loudblog m2ts mac magazines malware mambo manchester marjolein mediterra meeting meme meta methodology micro-financing microframework microsoft migration movie music mysql namespace namespaces netbeans netherlands newsfire nllgg northeastphp nos odmarco open source opinion ORM osx paradiso paris partnership pavilion pear pecl performance personal pfc10 pfc11 pfcongres pfcongrez pfz pfz.nl photo php PHP php5.3 phpabstract phpazure phpBB phpbb phpbelgium phpbenelux phpbnl10 phpday phpdoc phpdocumentor phpgg phpitalia phpnw phpnw08 phpnw11 phpnw12 phpstorm phptek phptek09 phpuk2009 phpUnderControl phpunit php|architect php|tek podcast politics portability postcrossing presentation presentations private projects protected prototype PSR-0 public python qa qr codes re2c recruiting refactoring review rewrite ruby on rails san francisco schedule scifi script security sensio seven things sexism sfdaycgn sflive2011 shell scripting silex simplexml slides smfony software sogeti solar sound speakers spl ssh standard standards star trek static steer strings stylesheets subversion symfony symfony live symfony2 Symfony2 symfonycamp symfonyday symfonylive symfonyUnderControlPlugin talk talks tech techademy technology techportal tek09 telecommuting terratec terrorism testfest testing textmate textpattern the right tool timeout tips tld todo tomas tools training twig uncon unet usability usergroup validation vhost video vim vinyl virus warp webinar weblogging webservices wiki windows winphp women wordpress work workshop world world of warcraft wpi writing wunderlist xml xpath xsd yara year youtube zc11 ZCE zemanta zend zend framework zend server zend studio zendcon Zend_Form zite
© 2004 - 2013 Stefan Koopmanschap + Powered by Symfony, photos powered by Flickr, links powered by Delicious, Shanghai smilies by Iconbuffet. Feeds: rss / atom. Left on the Web v4.4.0.1