Modified: pear2/BugManager/trunk/src/BugManager/Main.php =================================================================== --- pear2/BugManager/trunk/src/BugManager/Main.php 2009-08-13 00:38:57 UTC (rev 287187) +++ pear2/BugManager/trunk/src/BugManager/Main.php 2009-08-13 01:06:11 UTC (rev 287188) @@ -27,39 +27,25 @@ class Main { /** - * One of pear, pear2, pecl, or php + * A valid object that implements SiteInterface */ - static protected $site = 'pear'; + static protected $site; - static function setSite($site) + static function setSite(SiteInterface $site) { - if ($site !== 'pear' && $site !== 'pear2' && $site !== 'pecl' && $site !== 'php') { - throw new UnexpectedValueException('site must be one of pear, pecl, pear2 or php'); - } self::$site = $site; } static function site() { + if (!isset(self::$site)) { + self::setSite(new Site\PEAR()); + } return self::$site; } static function defaultCategory() { - switch (self::$site) - { - case 'pear' : - return new Category\PearPackage(self::$site); - break; - case 'pear2' : - return new Category\Pear2Package(self::$site); - break; - case 'pecl' : - return new Category\PeclPackage(self::$site); - break; - case 'php' : - return new Category\PhpComponent(self::$site); - break; - } + return self::site()->defaultCategory(); } } Added: pear2/BugManager/trunk/src/BugManager/Site/PEAR.php =================================================================== --- pear2/BugManager/trunk/src/BugManager/Site/PEAR.php (rev 0) +++ pear2/BugManager/trunk/src/BugManager/Site/PEAR.php 2009-08-13 01:06:11 UTC (rev 287188) @@ -0,0 +1,16 @@ + + * @copyright 2009 Gregory Beaver + * @license http://www.opensource.org/licenses/bsd-license.php New BSD License + * @version SVN: $Id$ + * @link http://svn.php.net/repository/pear2/BugManager + */ + +/** + * Represents a comment on a bug report + * + * @category Bugs + * @package PEAR2_BugManager + * @author Gregory Beaver + * @copyright 2009 Gregory Beaver + * @license http://www.opensource.org/licenses/bsd-license.php New BSD License + * @link http://svn.php.net/repository/pear2/BugManager + */ +namespace pear2\BugManager; +interface SiteInterface +{ + function defaultCategory(); +} +?> \ No newline at end of file Modified: pear2/BugManager/trunk/tests/Issue/add/add.phpt =================================================================== --- pear2/BugManager/trunk/tests/Issue/add/add.phpt 2009-08-13 00:38:57 UTC (rev 287187) +++ pear2/BugManager/trunk/tests/Issue/add/add.phpt 2009-08-13 01:06:11 UTC (rev 287188) @@ -4,7 +4,7 @@