class ClassUtils

Class and reflection related functionality for objects that might or not be proxy objects at the moment.

@author Benjamin Eberlei <kontakt@beberlei.de> @author Johannes Schmitt <schmittjoh@gmail.com>

Hierarchy

Expanded class hierarchy of ClassUtils

2 files declare their use of ClassUtils
AbstractClassMetadataFactory.php in drupal/core/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php
ClassUtilsTest.php in drupal/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Util/ClassUtilsTest.php

File

drupal/core/vendor/doctrine/common/lib/Doctrine/Common/Util/ClassUtils.php, line 31

Namespace

Doctrine\Common\Util
View source
class ClassUtils {

  /**
   * Get the real class name of a class name that could be a proxy.
   *
   * @param string
   * @return string
   */
  public static function getRealClass($class) {
    if (false === ($pos = strrpos($class, '\\' . Proxy::MARKER . '\\'))) {
      return $class;
    }
    return substr($class, $pos + Proxy::MARKER_LENGTH + 2);
  }

  /**
   * Get the real class name of an object (even if its a proxy)
   *
   * @param object
   * @return string
   */
  public static function getClass($object) {
    return self::getRealClass(get_class($object));
  }

  /**
   * Get the real parent class name of a class or object
   *
   * @param string
   * @return string
   */
  public static function getParentClass($className) {
    return get_parent_class(self::getRealClass($className));
  }

  /**
   * Create a new reflection class
   *
   * @param string
   * @return \ReflectionClass
   */
  public static function newReflectionClass($class) {
    return new \ReflectionClass(self::getRealClass($class));
  }

  /**
   * Create a new reflection object
   *
   * @param object
   * @return \ReflectionObject
   */
  public static function newReflectionObject($object) {
    return self::newReflectionClass(self::getClass($object));
  }

  /**
   * Given a class name and a proxy namespace return the proxy name.
   *
   * @param string $className
   * @param string $proxyNamespace
   * @return string
   */
  public static function generateProxyClassName($className, $proxyNamespace) {
    return rtrim($proxyNamespace, '\\') . '\\' . Proxy::MARKER . '\\' . ltrim($className, '\\');
  }

}

Members

Namesort descending Modifiers Type Description Overrides
ClassUtils::generateProxyClassName public static function Given a class name and a proxy namespace return the proxy name.
ClassUtils::getClass public static function Get the real class name of an object (even if its a proxy)
ClassUtils::getParentClass public static function Get the real parent class name of a class or object
ClassUtils::getRealClass public static function Get the real class name of a class name that could be a proxy.
ClassUtils::newReflectionClass public static function Create a new reflection class
ClassUtils::newReflectionObject public static function Create a new reflection object