2015-08-17 17:00:26 -07:00
< ? php
namespace Doctrine\Common\Util ;
use Doctrine\Common\Persistence\Proxy ;
/**
* 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 >
2018-11-23 12:29:20 +00:00
*
* @ deprecated The ClassUtils class is deprecated .
2015-08-17 17:00:26 -07:00
*/
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 )
{
2018-11-23 12:29:20 +00:00
if ( false === $pos = strrpos ( $class , '\\' . Proxy :: MARKER . '\\' )) {
2015-08-17 17:00:26 -07:00
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 )
{
2018-11-23 12:29:20 +00:00
return get_parent_class ( self :: getRealClass ( $className ));
2015-08-17 17:00:26 -07:00
}
/**
* Creates a new reflection class .
*
* @ param string $class
*
* @ return \ReflectionClass
*/
public static function newReflectionClass ( $class )
{
2018-11-23 12:29:20 +00:00
return new \ReflectionClass ( self :: getRealClass ( $class ));
2015-08-17 17:00:26 -07:00
}
/**
* Creates a new reflection object .
*
* @ param object $object
*
2018-11-23 12:29:20 +00:00
* @ return \ReflectionClass
2015-08-17 17:00:26 -07:00
*/
public static function newReflectionObject ( $object )
{
2018-11-23 12:29:20 +00:00
return self :: newReflectionClass ( self :: getClass ( $object ));
2015-08-17 17:00:26 -07:00
}
/**
* 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 )
{
2018-11-23 12:29:20 +00:00
return rtrim ( $proxyNamespace , '\\' ) . '\\' . Proxy :: MARKER . '\\' . ltrim ( $className , '\\' );
2015-08-17 17:00:26 -07:00
}
}