classes() to view loaded classes
 * @uses Classes()->functions() to view the funcions of loaded classes.
 * 
 * The method exists('class') check if a class exists and is most compatible instead PHP native function.
 * 
 * @uses Classes()->exists('class') to check if a class exists.
 * 
 * @package Phacil\Framework
 * @since 1.5.0 
 */
final class Classes {
	
	/**
	 * 
	 * @var string|null
	 */
	private $format;
	
	/**
	 * @param string|null $format Define if the output is an array or HTML format
	 * @return void 
	 */
	public function __construct($format = NULL) {
		
		$this->format = $format;
		
	}
	
	/**
	 * Return the loaded classes 
	 * @param string|null $origin 
	 * @return string|array
	 */
	public function classes($origin = NULL){
		$mClass = get_declared_classes();
		
		$pegaKey = 0;
		$pegaClass = [];
		
		foreach($mClass as $key => $value){
			if($value == 'startEngineExacTI'){
				$pegaKey = $key;
			}
			if($pegaKey != 0 and $key > $pegaKey){
				$pegaClass[] .= $value;
			}
		}
		
		if($this->format == "HTML" && $origin != 'intern'){
			$pegaClassD = $pegaClass;
			$pegaClass = '';
			foreach($pegaClassD as $value) {
				$pegaClass .= ''.$value.'
';
				
			}
		}
		
		return($pegaClass);
	}
	
	/** 
	 * Return the functions of loaded classes
	 * 
	 * @return array|string  */
	public function functions(){
		$classes = $this->classes('intern');
		
		$functions = array();
		
		foreach($classes as $key => $value){
			$functions = array_merge($functions, array($value => get_class_methods($value)));
		}
		
		if($this->format == "HTML"){
			$functions = "";
			foreach($classes as $value) {
				$functions .= '