diff options
author | Karl 'vollmerk' Vollmer <vollmer@ampache.org> | 2007-04-08 14:24:39 +0000 |
---|---|---|
committer | Karl 'vollmerk' Vollmer <vollmer@ampache.org> | 2007-04-08 14:24:39 +0000 |
commit | 9e971edd7fa6715de74ba1beecd48e7cd7390196 (patch) | |
tree | 36513dd0f5f5c33c8e3bb57e940aa0d9642e86e8 /lib | |
parent | 308e944be4ee42a942e97ab8e9abbef9c38ea4ae (diff) | |
download | ampache-9e971edd7fa6715de74ba1beecd48e7cd7390196.tar.gz ampache-9e971edd7fa6715de74ba1beecd48e7cd7390196.tar.bz2 ampache-9e971edd7fa6715de74ba1beecd48e7cd7390196.zip |
two php5 only classes... first stage of re-write
Diffstat (limited to 'lib')
-rw-r--r-- | lib/class/config.class.php | 111 | ||||
-rw-r--r-- | lib/class/dba.class.php | 168 |
2 files changed, 279 insertions, 0 deletions
diff --git a/lib/class/config.class.php b/lib/class/config.class.php new file mode 100644 index 00000000..dbb75f41 --- /dev/null +++ b/lib/class/config.class.php @@ -0,0 +1,111 @@ +<?php +/* + + Copyright (c) 2001 - 2007 Ampache.org + All rights reserved. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License v2 + as published by the Free Software Foundation. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +*/ + + +/* config class + * used to store static arrays of + * config values, can read from ini files + * + * has static methods, this uses the global config + * creating a 'Config' object will allow for local + * config overides and/or local configs (for like dba) + * The class should be a static var in the other classes + */ +class Config { + + // These are the settings for this specific class + private $_local = array(); + + // These are the global settings they go where it goes + private static $_global = array(); + + /** + * constructor + * This is what is called when the class is loaded + */ + public function __construct() { + + // Rien a faire + + } // constructor + + /** + * This checks to see if this is an instance or procedure + * call, procedure == global, instance == local + */ + public static function get($name) { + + if (is_object($this)) { + return $this->_local[$name]; + } + else { + return self::$_global[$name]; + } + + } // get + + /** + * This checks to see if this is an instance or procedure calls + * and then sets the correct variable based on that + */ + public static function set($name, $value, $clobber = 0) { + + if (isset($this)) { + if (isset($this->_local[$name]) && !$clobber) { + Error::add('Config Instance',"Trying to clobber '$name' without setting clobber"); + return; + } + else { + $this->_local[$name] = $value; + } + } // if object + else { + if (isset(self::$_global[$name]) && !$clobber) { + Error::add('Config Global',"Trying to clobber'$name' without setting clobber"); + return; + } + else { + self::$_global[$name] = $value; + } + } // else not object, procedure call + + } // set + + /** + * This is the same as the set function except it takes an array as input + */ + + public static function set_by_array($array, $clobber = 0) { + + if (isset($this)) { + foreach ($array as $name => $value) { + $this->set($name, $value, $clobber); + } // end foreach + } // if this is an object + else { + foreach ($array as $name => $value) { + self::set($name,$value,$clobber); + } + } // end if procedural call + + } // set_by_array + +} // end Config class +?> diff --git a/lib/class/dba.class.php b/lib/class/dba.class.php new file mode 100644 index 00000000..97810613 --- /dev/null +++ b/lib/class/dba.class.php @@ -0,0 +1,168 @@ +<?php +/* + + Copyright (c) 2001 - 2007 Ampache.org + All rights reserved. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License v2 + as published by the Free Software Foundation. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ +/* Make sure they aren't directly accessing it */ +if (INIT_LOADED != '1') { exit; } + +class Dba { + + private static $_default_db; + + private static $config; + + /** + * constructor + * This does nothing with the DBA class + */ + private function __construct() { + + // Rien a faire + + } // construct + + /** + * query + * This is the meat of the class this does a query, it emulates + * The mysql_query function + */ + public static function query($sql) { + + $resource = mysql_query($sql,self::dbh()); + + return $resource; + + } // query + + /** + * escape + * This runs a escape on a variable so that it can be safely inserted + * into the sql + */ + public static function escape($var) { + + $string = mysql_real_escape_string($var,self::dbh()); + + return $string; + + } // escape + + /** + * fetch_assoc + * This emulates the mysql_fetch_assoc and takes a resource result + */ + public static function fetch_assoc($resource) { + + $result = mysql_fetch_assoc($resource); + + if (!$result) { return array(); } + + return $result; + + } // fetch_assoc + + /** + * fetch_row + * This emulates the mysql_fetch_row and takes a resource result + */ + public static function fetch_row($resource) { + + $result = mysql_fetch_row($resource); + + if (!$result) { return array(); } + + return $result; + + } // fetch_row + + /** + * _connect + * This connects to the database, used by the DBH function + */ + private static function _connect($db_name) { + + if (self::$_default_db == $db_name) { + $username = Config::get('mysql_username'); + $hostname = Config::get('mysql_hostname'); + $password = Config::get('mysql_password'); + $database = Config::get('mysql_database'); + } + else { + // Do this later + } + + $dbh = mysql_connect($hostname,$username,$password); + if (!$dbh) { debug_event('Database','Error unable to connect to database' . mysql_error(),'1'); } + + $select_db = mysql_select_db($database,$dbh); + + return $dbh; + + } // _connect + + /** + * dbh + * This is called by the class to return the database handle + * for the specified database, if none is found it connects + */ + public static function dbh($database='') { + + if (!$database) { $database = self::$_default_db; } + + if (!is_resource(self::$config->get($database))) { + $dbh = self::_connect($database); + self::$config->set($database,$dbh,1); + return $dbh; + } + else { + return self::$config->get($database); + } + + + } // dbh + + /** + * insert_id + * This emulates the mysql_insert_id function, it takes + * an optional database target + */ + public static function insert_id() { + + $id = mysql_insert_id(self::dbh()); + return $id; + + } // insert_id + + /** + * auto_init + * This is the auto init function it sets up the config class + * and also sets the default database + */ + public static function auto_init() { + + self::$_default_db = Config::get('mysql_database'); + self::$config = new Config(); + + return true; + + } // auto_init + +} // dba class + +?> |