diff options
Diffstat (limited to 'class/TablePearRepo.php')
-rw-r--r-- | class/TablePearRepo.php | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/class/TablePearRepo.php b/class/TablePearRepo.php new file mode 100644 index 0000000..34a0c17 --- /dev/null +++ b/class/TablePearRepo.php @@ -0,0 +1,136 @@ +<?php +/** + * Class for "pearrepo" Table management + * + * PHP version 5 + * + * Copyright © 2010 Remi Collet + * + * This file is part of rpmphp. + * + * rpmphp is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rpmphp is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with rpmphp. If not, see <http://www.gnu.org/licenses/>. + * + * @category Main + * @package RPMPHP + * + * @author Remi Collet <unknown@unknwown.com> + * @author Johan Cwiklinski <johan@x-tnd.be> + * @copyright 2010 Remi Collet + * @license http://www.gnu.org/licenses/agpl-3.0-standalone.html AGPL License 3.0 or (at your option) any later version + * @link http://github.com/remicollet/rpmphp/ + * @since The begining of times. +*/ + +class TablePearRepo extends CommonTable +{ + + /** + * Instanciate a TablePearRepo to manage pearrepo table + * + * @param object $db PDO instance of the DB connection + */ + function __construct($db) + { + parent::__construct($db, 'pearrepo'); + } + + /** + * Create the table and populate it with known repo + * + * @return void + */ + protected function createTable() + { + + // Table schema + $sql = "CREATE TABLE `pearrepo` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `alias` varchar(30) NOT NULL, + `url` varchar(255) NOT NULL, + `active` tinyint NOT NULL default 1, + PRIMARY KEY (`id`), + UNIQUE KEY `alias` (`alias`), + KEY `active` (`active`) + ) DEFAULT CHARSET=utf8"; + + $this->exec($sql); + + // Some known repo, other could be add manually + // no reply from "" => "" + $channels = array( + array( + 'alias' => 'pear', + 'url' => 'pear.php.net' + ), + array( + 'alias' => 'doctrine', + 'url' => 'pear.phpdoctrine.org' + ), + array( + 'alias' => 'ezc', + 'url' => 'components.ez.no' + ), + array( + 'alias' => 'pdepend', + 'url' => 'pear.pdepend.org' + ), + array( + 'alias' => 'phing', + 'url' => 'pear.phing.info' + ), + array( + 'alias' => 'phpmd', + 'url' => 'pear.phpmd.org' + ), + array( + 'alias' => 'phpunit', + 'url' => 'pear.phpunit.de' + ), + array( + 'alias' => 'swift', + 'url' => 'pear.swiftmailer.org' + ), + array( + 'alias' => 'symphony', + 'url' => 'pear.symfony-project.com' + ), + array( + 'alias' => 'phpdb', + 'active' => 0, + 'url' => 'pear.phpdb.org' + ) + ); + + foreach ($channels as $channel) { + $this->add($channel); + } + } + + /** + * Retrieve all the known repository + * + * @param boolean $active true for only active repo (false for all) + * + * @return hastable of alias => url + */ + function getAllRepo($active=true) + { + if ($active) { + return $this->getHashtable('alias', 'url', array('active'=>1)); + } + return $this->getHashtable('alias', 'url'); + } +} + +?>
\ No newline at end of file |