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

Php5_zce_logo

not tested in IE


Upcoming events

I will be speaking 08-10-2010: Symfony Day Cologne 2010
I will be speaking 09-10-2010: Symfony workshop

Tags

1337 2008 2010 4developers access modifiers accessibility AdaLovelaceDay09 advent agavi agile amsterdam apache apple article articles atk atkMetaNode audioscrobbler azure backwards compatibility barcelona bbc bbq beatstad belgium best practices bittorrent boards of canada book books bughuntday caching cake cal evans career cat cerf certificate cfp clear cms cologne common sense communities community conference conferences continuous integration contribute crisis css custom datetime DbFinderPlugin decorator decorators deployment devdays development directoryindex documentation download dpc dpc09 dpc10 DPC2008 dreamhost dv7 eclipse ed efficiency enterprise errors event events expertise ezcomponents facebook flickr framework frameworks freelance freeze frontend fun games germany getting real google googletalk graceful degradation hack hackers hidden gem hiphop howto hp html http ibuildings icann ide idm imovie indy ingewikkeld internet IPC ipc ipc08 javascript job jobeet john peel joomla kubuntu left on the web lighttpd lime linux live london loudblog m2ts mac malware mambo marjolein mediterra meeting meme meta methodology microsoft movie music mysql namespace namespaces netbeans netherlands nllgg odmarco open source opinion ORM osx paradiso pavilion pear performance personal pfc10 pfcongres pfcongrez photo php phpabstract phpazure phpBB phpbb phpbelgium phpbenelux phpbnl10 phpgg phpitalia phpnw phpnw08 phptek phptek09 phpuk2009 phpUnderControl phpunit php|architect php|tek podcast politics portability postcrossing presentation presentations private projects protected public qa recruiting refactoring review rewrite ruby on rails schedule scifi script security seven things sfdaycgn simplexml slides smfony software sogeti solar sound standard standards star trek static steer strings subversion symfony Symfony2 symfonycamp symfonyday symfonyUnderControlPlugin talk talks technology techportal tek09 telecommuting terratec terrorism testfest testing textpattern tips tld tomas training twig uncon unet usability usergroup validation vhost video vinyl virus warp weblogging wiki windows winphp women work workshop world world of warcraft wpi writing xml xpath xsd yara year youtube ZCE zemanta zend zend framework zend server zend studio Zend_Form
© 2004 - 2010 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