phpbar.de logo

Mailinglisten-Archive

[php] singleton mit parametern

[php] singleton mit parametern

"patrick müller (aka elias)" ghostwwinside at gmx.net
Fre Mar 26 13:00:41 CET 2004


Ok wegen allgemeiner Nebelschwaden Poste ich mal den Kompletten Code.
Wichtig ist halt das ich in der Klasse von der ich ein Objekt haben
möchte nichts geändert werden soll.

<?php
/* Beispiel Singleton Klasse */
function &singleton($class, $param = array()) {
	static $singleton;

	if (!is_object($singleton)) {
		$singleton = new singleton();
	}
	return $singleton->instance($class, $param);
}

class singleton {
	var $instances = array();

	function singleton() {	}

	function instance($class, $param) {
		if ( !@is_object($this->instances[$class]) ) {
			$str = ""; $count = count($param);
			for ($i = 0; $i < $count; $i++) if ($i == $count-1) {$str .= "\$param[".$i."]";}else{$str .= "\$param[".$i."], ";};
			eval( "\$this->instances[\$class] = new \$class($str);");
		}

		return $this->instances[$class];
	}
}

/* Beispiel für Objekt */

class db {

	var $db_host;
   	var $db_name;
   	var $db_user;
	var $db_pass;

	function db($user, $pass, $host, $db) {
	//hier weitere verarbeitung
	}
}

/* Anwendungsbeispiele */

$db = singleton('db',array('root', '', 'localhost', 'test'));

?>

php::bar PHP Wiki   -   Listenarchive