Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/old/lib/internal/Customweb/Core/Reflection/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //home/corals/old/lib/internal/Customweb/Core/Reflection/Class.php
<?php
/**
  * You are allowed to use this API in your web application.
 *
 * Copyright (C) 2018 by customweb GmbH
 *
 * This program is licenced under the customweb software licence. With the
 * purchase or the installation of the software in your application you
 * accept the licence agreement. The allowed usage is outlined in the
 * customweb software licence which can be found under
 * http://www.sellxed.com/en/software-license-agreement
 *
 * Any modification or distribution is strictly forbidden. The license
 * grants you the installation in one application. For multiuse you will need
 * to purchase further licences at http://www.sellxed.com/shop.
 *
 * See the customweb software licence agreement for more details.
 *
 */



class Customweb_Core_Reflection_Class extends ReflectionClass {
	
	private $recursiveMethods = array();
	private $recursiveProperties = array();

	/**
	 * Gets all method recursive the inheritance tree along.
	 * 
	 * @param string $filter  <p>
	 * Any combination of ReflectionMethod::IS_STATIC,
	 * ReflectionMethod::IS_PUBLIC,
	 * ReflectionMethod::IS_PROTECTED,
	 * ReflectionMethod::IS_PRIVATE,
	 * ReflectionMethod::IS_ABSTRACT,
	 * ReflectionMethod::IS_FINAL.
	 * @return ReflectionMethod[]
	 */
	public function getMethodsRecursive($filter = -1){
		$filterKey = (string)$filter;
		if (!isset($this->recursiveMethods[$filterKey])) {
			$methods = $this->getMethods($filter);
			$parent = $this->getParentClass();
			if ($parent !== false) {
				$methods = array_merge($methods, $parent->getMethodsRecursive($filter));
			}
			$this->recursiveMethods[$filterKey] = $methods;
		}
		
		return $this->recursiveMethods[$filterKey];
	}
	
	/**
	 * Gets all properties recursive the inheritance tree along.
	 * 
	 * @param string $filter  <p>
	 * Any combination of ReflectionMethod::IS_STATIC,
	 * ReflectionMethod::IS_PUBLIC,
	 * ReflectionMethod::IS_PROTECTED,
	 * ReflectionMethod::IS_PRIVATE,
	 * ReflectionMethod::IS_ABSTRACT,
	 * ReflectionMethod::IS_FINAL.
	 * @return ReflectionProperty
	 */
	public function getPropertiesRecursive($filter = -1){
		$filterKey = (string)$filter;
		if (!isset($this->recursiveProperties[$filterKey])) {
			$properties = $this->getProperties($filter);
			$parent = $this->getParentClass();
			if ($parent !== false) {
				$properties = array_merge($properties, $parent->getPropertiesRecursive($filter));
			}
			$this->recursiveProperties[$filterKey] = $properties;
		}
	
		return $this->recursiveProperties[$filterKey];
	}

	public function hasMethodRecursive($name) {
		if ($this->hasMethod($name)) {
			return true;
		}
		foreach ($this->getMethodsRecursive() as $method) {
			if ($method->getName() == $name) {
				return true;
			}
		}
		return false;
	}

	public function hasPropertyRecursive($name) {
		if ($this->hasProperty($name)) {
			return true;
		}
		foreach ($this->getPropertiesRecursive() as $property) {
			if ($property->getName() == $name) {
				return true;
			}
		}
		return false;
	}
	
	/**
	 * @return Customweb_Core_Reflection_Class[]
	 */
	public function getInterfaces(){
		$result = array();
		
		foreach (parent::getInterfaces() as $interface) {
			$result[] = $this->createReflectionClass($interface);
		}
		
		return $result;
	}

	/**
	 * @return Customweb_Core_Reflection_Class
	 */
	public function getParentClass(){
		$class = parent::getParentClass();
		
		return $this->createReflectionClass($class);
	}
	
	
	private function createReflectionClass($class)
	{
		return ($class !== false) ? new Customweb_Core_Reflection_Class($class->getName()) : false;
	}
}

Spamworldpro Mini