public static function dump( $variable, $mode = self::MODE_DUMP, $modeIfNotXDebug = self::MODE_PRINT )
	{
		ob_start();																	//  open Buffer
		$hasXDebug	= extension_loaded( 'xdebug' );									//  check for XDebug Extension
		if( !$hasXDebug )
			$mode	= $modeIfNotXDebug;
		switch( $mode )
		{
			case self::MODE_DUMP:
				var_dump( $variable );												//  print  Variable Dump
				if( !$hasXDebug )
				{
					$dump	= ob_get_clean();										//  get buffered Dump
					$dump	= preg_replace( "@=>\n +@", ": ", $dump );				//  remove Line Break on Relations
					$dump	= str_replace( "{\n", "\n", $dump );					//  remove Array Opener
					$dump	= str_replace( "}\n", "\n", $dump );					//  remove Array Closer
					$dump	= str_replace( ' ["', " ", $dump );						//  remove Variable Key Opener
					$dump	= str_replace( '"]:', ":", $dump );						//  remove Variable Key Closer
					$dump	= preg_replace( '@string\([0-9]+\)@', "", $dump );		//  remove Variable Type for Strings
					$dump	= preg_replace( '@array\([0-9]+\)@', "", $dump );		//  remove Variable Type for Arrays
					ob_start();														//  open Buffer
					xmp( $dump );													//  print Dump with XMP
				}
				break;
			case self::MODE_PRINT:
				print_m( $variable, self::$modePrintIndentSign, self::$modePrintIndentSize );		//  print Dump with indent
				break;
		}
		return ob_get_clean();														//  return buffered Dump
	}