TYPO3  7.6
Public Member Functions | Public Attributes | Private Member Functions | Static Private Attributes | List of all members
Instantiator Class Reference
Inheritance diagram for Instantiator:
InstantiatorInterface

Public Member Functions

 instantiate ($className)
 

Public Attributes

const SERIALIZATION_FORMAT_USE_UNSERIALIZER = 'C'
 
const SERIALIZATION_FORMAT_AVOID_UNSERIALIZER = 'O'
 

Private Member Functions

 buildAndCacheFromFactory ($className)
 
 buildFactory ($className)
 
 getReflectionClass ($className)
 
 checkIfUnSerializationIsSupported (ReflectionClass $reflectionClass, $serializedString)
 
 attemptInstantiationViaUnSerialization (ReflectionClass $reflectionClass, $serializedString)
 
 isInstantiableViaReflection (ReflectionClass $reflectionClass)
 
 hasInternalAncestors (ReflectionClass $reflectionClass)
 
 getSerializationFormat (ReflectionClass $reflectionClass)
 
 isPhpVersionWithBrokenSerializationFormat ()
 
 isSafeToClone (ReflectionClass $reflection)
 

Static Private Attributes

static $cachedInstantiators = array()
 
static $cachedCloneables = array()
 

Detailed Description

Author
Marco Pivetta ocram.nosp@m.ius@.nosp@m.gmail.nosp@m..com

Definition at line 33 of file Instantiator.php.

Member Function Documentation

attemptInstantiationViaUnSerialization ( ReflectionClass  $reflectionClass,
  $serializedString 
)
private
Parameters
ReflectionClass$reflectionClass
string$serializedString
Exceptions
UnexpectedValueException
Returns
void

Definition at line 181 of file Instantiator.php.

References UnexpectedValueException\fromSerializationTriggeredException().

Referenced by Instantiator\checkIfUnSerializationIsSupported().

buildAndCacheFromFactory (   $className)
private

Builds the requested object and caches it in static properties for performance

Parameters
string$className
Returns
object

Definition at line 78 of file Instantiator.php.

References Instantiator\buildFactory(), and Instantiator\isSafeToClone().

Referenced by Instantiator\instantiate().

buildFactory (   $className)
private

Builds a {

See Also
} capable of instantiating the given $className without invoking its constructor.
Parameters
string$className
Returns
Closure

Definition at line 98 of file Instantiator.php.

References Instantiator\checkIfUnSerializationIsSupported(), Instantiator\getReflectionClass(), Instantiator\getSerializationFormat(), and Instantiator\isInstantiableViaReflection().

Referenced by Instantiator\buildAndCacheFromFactory().

checkIfUnSerializationIsSupported ( ReflectionClass  $reflectionClass,
  $serializedString 
)
private
Parameters
ReflectionClass$reflectionClass
string$serializedString
Exceptions
UnexpectedValueException
Returns
void

Definition at line 152 of file Instantiator.php.

References Instantiator\attemptInstantiationViaUnSerialization(), and UnexpectedValueException\fromUncleanUnSerialization().

Referenced by Instantiator\buildFactory().

getReflectionClass (   $className)
private
Parameters
string$className
Returns
ReflectionClass
Exceptions
InvalidArgumentException

Definition at line 129 of file Instantiator.php.

References InvalidArgumentException\fromAbstractClass(), and InvalidArgumentException\fromNonExistingClass().

Referenced by Instantiator\buildFactory().

getSerializationFormat ( ReflectionClass  $reflectionClass)
private

Verifies if the given PHP version implements the Serializable interface serialization with an incompatible serialization format. If that's the case, use serialization marker "C" instead of "O".

ReflectionClass $reflectionClass string the serialization format marker, either self::SERIALIZATION_FORMAT_USE_UNSERIALIZER or self::SERIALIZATION_FORMAT_AVOID_UNSERIALIZER

Definition at line 236 of file Instantiator.php.

References Instantiator\isPhpVersionWithBrokenSerializationFormat().

Referenced by Instantiator\buildFactory().

hasInternalAncestors ( ReflectionClass  $reflectionClass)
private

Verifies whether the given class is to be considered internal

Parameters
ReflectionClass$reflectionClass
Returns
bool

Definition at line 213 of file Instantiator.php.

Referenced by Instantiator\isInstantiableViaReflection().

instantiate (   $className)

Parameters
string$className
Returns
object
Exceptions
\Doctrine\Instantiator\Exception\ExceptionInterface

Implements InstantiatorInterface.

Definition at line 56 of file Instantiator.php.

References Instantiator\buildAndCacheFromFactory().

isInstantiableViaReflection ( ReflectionClass  $reflectionClass)
private
Parameters
ReflectionClass$reflectionClass
Returns
bool

Definition at line 197 of file Instantiator.php.

References Instantiator\hasInternalAncestors().

Referenced by Instantiator\buildFactory().

isPhpVersionWithBrokenSerializationFormat ( )
private

Checks whether the current PHP runtime uses an incompatible serialization format

Returns
bool

Definition at line 252 of file Instantiator.php.

Referenced by Instantiator\getSerializationFormat().

isSafeToClone ( ReflectionClass  $reflection)
private

Checks if a class is cloneable

Parameters
ReflectionClass$reflection
Returns
bool

Definition at line 264 of file Instantiator.php.

Referenced by Instantiator\buildAndCacheFromFactory().

Member Data Documentation

$cachedCloneables = array()
staticprivate

Definition at line 51 of file Instantiator.php.

$cachedInstantiators = array()
staticprivate

Definition at line 46 of file Instantiator.php.

const SERIALIZATION_FORMAT_AVOID_UNSERIALIZER = 'O'

Definition at line 41 of file Instantiator.php.

const SERIALIZATION_FORMAT_USE_UNSERIALIZER = 'C'

Markers used internally by PHP to define whether {

See Also
} should invoke the method {
::unserialize()} when dealing with classes implementing the {
} interface.

Definition at line 40 of file Instantiator.php.