Outils pour utilisateurs

Outils du site


informatique:php:singleton

Ceci est une ancienne révision du document !


Singleton

Une classe héritable pour faire des Singletons.

Nécessite PHP >= 5.3.

abstract class Singleton
{
	// this must be in every inherited singleton!
	protected static $_instances = array() ;
 
	/**
	 * @exception Cannot duplicate a singleton
	 */
	final public function __clone()
	{
		throw new Exception('Cannot duplicate a singleton.');
	}
 
	final private function __sleep()
	{
		/* restless class */
	}
 
	/**
	 * Get the instance
	 * @return A object of a class
	 */
	final public static function getInstance()
	{
		$class = get_called_class(); // php 5.3.0
		if( ! isset(static::$_instances[$class]) )
		{
			static::$_instances[$class] = new $class;
		}
		return static::$_instances[$class];
	}
 
	/**
	 * Permet de faire des appels statique de méthode qui ne le sont pas, pour un objet héritant de ce Singleton.
	 * @param $func
	 * @param $args
	 * @return unknown_type
	 */
    public static function __callStatic($func, $args) {
        $class = static::Instance();
        return call_user_func_array(array($class, '__'.$func), $args);
    }
 
}
informatique/php/singleton.1251472135.txt.gz · Dernière modification : 19/05/2012 00:15 (modification externe)

Sauf mention contraire, le contenu de ce wiki est placé sous les termes de la licence suivante : CC0 1.0 Universal
CC0 1.0 Universal Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki