All pastes #490093 Raw Edit

Something

public text v1 · immutable
·published 2007-05-15 21:01 UTC
rendered paste body
<?php



// ----------------------------------- \\
// @Zula Framework Registry
// @License: http://www.gnu.org/copyleft/gpl.html GNU/GPL 2
// @Author: Alex Cartwright
// @Created: 5th February 2007
// ----------------------------------- \\



	class Registry {

		

		private static $registered = array();

		private static $_instance = null; # Registry class is a singleton

		

		//---

		// constructor function

		//---

		private function __construct() {			

		}

		

		public static function get_instance() {

			if ( is_null( self::$_instance ) ) {

				self::$_instance = new self();

			}

			return self::$_instance;

		}

		

		//---

		// register() will register a file/object within the framework

		// so that modules and other classes can access other classes easily

		// without the need for globals

		// @param string $name

		// @param object $object

		// @return bool

		//---

		public static function register( $name, &$object ) {

			if ( !is_object( $object ) || isset( self::$registered[ $name ] ) ) {

				return false;

			} else {

				self::$registered[ $name ] = $object;

				return true;

			}

		}

		

		//---

		// unregister() will remove a file/object from the registry

		// @param string $name

		// @return bool

		//---

		public static function unregister( $name ) {

			if ( isset( self::$registered[ $name ] ) ) {

				unset( self::$registered[ $name ] );

				return true;

			} else {

				return false;

			}

		}

		

		//---

		// get() returns the requested object (if avaliable)

		// @param string $name

		// @return object || bool false

		//---

		public static function get( $name ) {

			if ( self::has( $name ) ) {

				return self::$registered[ $name ];

			} else {

				Log::message( '"'.$name.'" can not be loaded from the registry, entry does not exist', Log::L_WARNING );

				return false;

			}

		}

		

		//---

		// has() checks if an object is in the registry

		// @param string $name

		// @return bool

		//---

		public static function has( $name ) {

			if ( !isset( self::$registered[ $name ] ) ) {

				return false;

			} else {

				return true;

			}

		}

		

		//---

		// registered() returns the registry array

		// @return array

		//---

		public static function registered() {

			return self::$registered;

		}

		

	}



?>