From 3c22a10c40837b1695ae04d120bbfc68da01059c Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Tue, 8 Jun 2010 20:04:48 +0200 Subject: add TableRRepo class and use it --- class/TableRRepo.php | 120 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 class/TableRRepo.php (limited to 'class/TableRRepo.php') diff --git a/class/TableRRepo.php b/class/TableRRepo.php new file mode 100644 index 0000000..75570c3 --- /dev/null +++ b/class/TableRRepo.php @@ -0,0 +1,120 @@ +. + * + * @category Main + * @package RPMPHP + * + * @author Remi Collet + * @author Johan Cwiklinski + * @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 TableRRepo extends CommonTable +{ + + /** + * Instanciate a TablePearRepo to manage pearrepo table + * + * @param object $db PDO instance of the DB connection + */ + function __construct($db) + { + parent::__construct($db, 'rrepo'); + } + + /** + * Create the table and populate it with known repo + * + * @return void + */ + protected function createTable() + { + + // Table schema + $sql = "CREATE TABLE `rrepo` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(30) NOT NULL, + `state` varchar(30) NOT NULL default 'stable', + `url` varchar(255) NOT NULL, + `active` tinyint NOT NULL default 1, + PRIMARY KEY (`id`), + UNIQUE KEY `name_state` (`name`,`state`) + ) DEFAULT CHARSET=utf8"; + + $this->exec($sql); + + // Some known repo, other could be add manually + $repos = array( + array( + "name" => "R", + "url" => "http://cran.at.r-project.org/src/contrib/PACKAGES" + ), + array( + "name" => "biocp", + "url" => "http://www.bioconductor.org/packages/release/bioc/src/contrib/PACKAGES" + ), + array( + "name" => "biocp", + "state" => "unstable", + "url" => "http://www.bioconductor.org/packages/devel/bioc/src/contrib/PACKAGES" + ), + array( + "name" => "bioca", + "url" => "http://www.bioconductor.org/packages/release/data/annotation/src/contrib/PACKAGES" + ), + array( + "name" => "bioca", + "state" => "unstable", + "url" => "http://www.bioconductor.org/packages/devel/data/annotation/src/contrib/PACKAGES" + ), + array( + "name" => "bioce", + "url" => "http://www.bioconductor.org/packages/release/data/experiment/src/contrib/PACKAGES" + ), + array( + "name" => "bioce", + "state" => "unstable", + "url" => "http://www.bioconductor.org/packages/devel/data/experiment/src/contrib/PACKAGES" + ) + ); + + foreach ($repos as $repo) { + $this->add($repo); + } + } + + /** + * Retrieve all the known repository + * + * @return hastable of alias => url + */ + function getAllRepo() + { + return $this->getArray(array('active'=>1)); + } +} + +?> \ No newline at end of file -- cgit From 825c4679551854f48c6c6b67e5c5b7f7322d24d2 Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Tue, 8 Jun 2010 20:25:59 +0200 Subject: improves previous, add active field to pearrepo table --- class/TableRRepo.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'class/TableRRepo.php') diff --git a/class/TableRRepo.php b/class/TableRRepo.php index 75570c3..884b4e3 100644 --- a/class/TableRRepo.php +++ b/class/TableRRepo.php @@ -61,7 +61,8 @@ class TableRRepo extends CommonTable `url` varchar(255) NOT NULL, `active` tinyint NOT NULL default 1, PRIMARY KEY (`id`), - UNIQUE KEY `name_state` (`name`,`state`) + UNIQUE KEY `name_state` (`name`,`state`), + KEY `active` (`active`) ) DEFAULT CHARSET=utf8"; $this->exec($sql); @@ -109,11 +110,13 @@ class TableRRepo extends CommonTable /** * Retrieve all the known repository * + * @param boolean $active true for only active repo (false for all) + * * @return hastable of alias => url */ - function getAllRepo() + function getAllRepo($active=true) { - return $this->getArray(array('active'=>1)); + return $this->getArray($active ? array('active'=>1) : ''); } } -- cgit