PEAR Group Meeting 13th July 2008
- Discuss PEAR2_Policies, extend since they are expired or make changes
- Are we going to push forward with collectives
- Revisit namespace / package name scheme in PEAR2_Naming_Standards
- Discuss/create policy on interface/abstract names in PEAR2_Class_Naming
- Discuss/create PEAR2_Exception_Policy
- Adding an explicit guideline to PEAR2 class naming conventions regarding acronyms and abbreviations in class & package names. http://news.php.net/php.pear.dev/50255
- .. and abbreviation != acronym let's make sure there's a distinction.
Josh called the meeting to order.
Josh requested volunteers to be added to the PEAR2 Policies RFC page at http://wiki.pear.php.net/index.php/PEAR2_Policies
Josh called for a vote on extending the current PEAR2 Policies as they expired on March 1st 2008.
- Chuck +1
- Brett +1
- Helgi +1
- Travis +1
- Josh +1
Vote passes, Josh updated the wiki page with the new date.
Revisit namespace / package name scheme
This proposal http://wiki.pear.php.net/index.php/PEAR2_Naming_Standards aims to update the PEAR2_Standards to enforce specific naming conventions.
One issue is svn:externals or git:submodules etc all required one directory for the tracked external repository.
Travis suggests that one directory to one package mapping is useful to people using SVN because these tools all track by directory, but not by file.
For example: Text/Diff.php and Text/CAPTCHA.php sit in the same directory and can't be tracked as one directory.
The RFC proposes changing the naming standards so that: A class location would go from PEAR2/Text/Diff.php to PEAR2/Text_Diff/Diff.php
The second issue this addresses is subpackage naming: Subpackages named MDB2_Driver_mysql would become PEAR2::MDB2_MySQLDriver::Driver or PEAR2::MDB2_MySQL::Driver left up to the collective to decide.
The RFC also recommends lower-case vendor and package names. Travis suggests that by moving to all lower-case, we add one more indicator as to what's a class and what's a namespace.
Josh suggested that Travis update the rfc to include all of this explanation and to get a second author to review it, then send to the pear-dev list for discussion.
Josh volunteered to be a second author for Travis's RFC.
Travis brought up the issue of extending PEAR_Exception, and the usefulness of requiring an external dependency on every package. The only advantage currently is ->getCause();, which if is necessary should be put into PHP's core.
It was suggested to use SPL exceptions, instead of a base exception class. Josh brought up the issue of capturing all exceptions for a specific package, and how to best handle this. It was suggested that each package implements a package-level Exception interface and each exception within the package must implement that exception as well. In addition, it is recommended that they try and extend the SPL exceptions wherever it makes sense.
Brett will be an author for this RFC.
Interface/Abstract naming conventions
This RFC needs to be written and should have a section on naming of abbr/acronyms and possibly a general guide.
Chuck will be an author for this RFC.
The next meeting will be August 3rd, 2008.