You are here

class ClassUtils in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/doctrine/common/lib/Doctrine/Common/Util/ClassUtils.php \Doctrine\Common\Util\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

4 files declare their use of ClassUtils
AbstractClassMetadataFactory.php in vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php
AbstractProxyFactory.php in vendor/doctrine/common/lib/Doctrine/Common/Proxy/AbstractProxyFactory.php
ClassUtilsTest.php in vendor/doctrine/common/tests/Doctrine/Tests/Common/Util/ClassUtilsTest.php
ProxyGenerator.php in vendor/doctrine/common/lib/Doctrine/Common/Proxy/ProxyGenerator.php

File

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

Namespace

Doctrine\Common\Util
View source
class ClassUtils {

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

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

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

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

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

  /**
   * Given a class name and a proxy namespace returns 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 returns the proxy name.
ClassUtils::getClass public static function Gets the real class name of an object (even if its a proxy).
ClassUtils::getParentClass public static function Gets the real parent class name of a class or object.
ClassUtils::getRealClass public static function Gets the real class name of a class name that could be a proxy.
ClassUtils::newReflectionClass public static function Creates a new reflection class.
ClassUtils::newReflectionObject public static function Creates a new reflection object.