A super easy PHP Framework for web development!
				https://github.com/exacti/phacil-framework
			
			
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							115 lines
						
					
					
						
							2.3 KiB
						
					
					
				
			
		
		
	
	
							115 lines
						
					
					
						
							2.3 KiB
						
					
					
				<?php
 | 
						|
/*
 | 
						|
 * Copyright © 2021 ExacTI Technology Solutions. All rights reserved.
 | 
						|
 * GPLv3 General License.
 | 
						|
 * https://exacti.com.br
 | 
						|
 * Phacil PHP Framework - https://github.com/exacti/phacil-framework
 | 
						|
 */
 | 
						|
 | 
						|
namespace Phacil\Framework;
 | 
						|
 | 
						|
/** 
 | 
						|
 * This class return the loaded classes and functions in HTML or array format.
 | 
						|
 * 
 | 
						|
 * @uses Classes()->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 .= '<strong>'.$value.'</strong><br>';
 | 
						|
				
 | 
						|
			}
 | 
						|
		}
 | 
						|
		
 | 
						|
		
 | 
						|
		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 .= '<hr><strong>'.$value.'</strong><br>';
 | 
						|
				$subFunc = get_class_methods($value);
 | 
						|
				foreach($subFunc as $value) {
 | 
						|
					$functions .= '<em>'.$value.'</em><br>';
 | 
						|
				}
 | 
						|
			}
 | 
						|
		}
 | 
						|
		
 | 
						|
		return $functions;
 | 
						|
		
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Check the class exists
 | 
						|
	 * 
 | 
						|
	 * @param string $class 
 | 
						|
	 * @return bool 
 | 
						|
	 */
 | 
						|
	public function exists($class)
 | 
						|
	{
 | 
						|
		return class_exists($class);
 | 
						|
	}
 | 
						|
	
 | 
						|
	
 | 
						|
}
 | 
						|
 |