Joomla CMS  4.2.2
Documentation des API du CMS Joomla en version 4.2.2
Référence de la classe DebugClassLoader

Fonctions membres publiques

 __construct (callable $classLoader)
 
 getClassLoader ()
 
 findFile (string $class)
 
 loadClass (string $class)
 
 checkAnnotations (\ReflectionClass $refl, string $class)
 
 checkCase (\ReflectionClass $refl, string $file, string $class)
 

Fonctions membres publiques statiques

static enable ()
 
static disable ()
 
static checkClasses ()
 

Fonctions membres privées

 checkClass (string $class, string $file=null)
 
 darwinRealpath (string $real)
 
 getOwnInterfaces (string $class, ?string $parent)
 
 setReturnType (string $types, string $class, string $method, string $filename, ?string $parent, \ReflectionType $returnType=null)
 
 normalizeType (string $type, string $class, ?string $parent, ?\ReflectionType $returnType)
 
 patchReturnTypeWillChange (\ReflectionMethod $method)
 
 patchMethod (\ReflectionMethod $method, string $returnType, string $declaringFile, string $normalizedType)
 
 fixReturnStatements (\ReflectionMethod $method, string $returnType)
 
 parsePhpDoc (\Reflector $reflector)
 

Fonctions membres privées statiques

static getUseStatements (string $file)
 

Attributs privés

const SPECIAL_RETURN_TYPES
 
const const BUILTIN_RETURN_TYPES
 
const const const MAGIC_METHODS
 
const const const $classLoader
 
 $isFinder
 
 $loaded = []
 
 $patchTypes
 

Attributs privés statiques

static $caseCheck
 
static $checkedClasses = []
 
static $final = []
 
static $finalMethods = []
 
static $deprecated = []
 
static $internal = []
 
static $internalMethods = []
 
static $annotatedParameters = []
 
static $darwinCache = ['/' => ['/', []]]
 
static $method = []
 
static $returnTypes = []
 
static $methodTraits = []
 
static $fileOffsets = []
 

Description détaillée

Autoloader checking if the class is really defined in the file found.

The ClassLoader will wrap all registered autoloaders and will throw an exception if a file is found but does not declare the class.

It can also patch classes to turn docblocks into actual return types. This behavior is controlled by the SYMFONY_PATCH_TYPE_DECLARATIONS env var, which is a url-encoded array with the follow parameters:

  • "force": any value enables deprecation notices - can be any of:
    • "phpdoc" to patch only docblock annotations
    • "2" to add all possible return types
    • "1" to add return types but only to tests/final/internal/private methods
  • "php": the target version of PHP - e.g. "7.1" doesn't generate "object" types
  • "deprecations": "1" to trigger a deprecation notice when a child class misses a return type while the parent declares an "@return" annotation

Note that patching doesn't care about any coding style so you'd better to run php-cs-fixer after, with rules "phpdoc_trim_consecutive_blank_line_separation" and "no_superfluous_phpdoc_tags" enabled typically.

Auteur
Fabien Potencier fabie.nosp@m.n@sy.nosp@m.mfony.nosp@m..com
Christophe Coevoet stof@.nosp@m.notk.nosp@m..org
Nicolas Grekas p@tch.nosp@m.work.nosp@m..com
Guilhem Niot guilh.nosp@m.em.n.nosp@m.iot@g.nosp@m.mail.nosp@m..com

Documentation des constructeurs et destructeur

◆ __construct()

__construct ( callable  $classLoader)

Documentation des fonctions membres

◆ checkAnnotations()

◆ checkCase()

checkCase ( \ReflectionClass  $refl,
string  $file,
string  $class 
)

◆ checkClass()

checkClass ( string  $class,
string  $file = null 
)
private

◆ checkClasses()

static checkClasses ( )
static

Références $function, $i, $loader, class, et null.

◆ darwinRealpath()

darwinRealpath ( string  $real)
private

realpath on MacOSX doesn't normalize the case of characters.

Références $dir, $i, et elseif.

Référencé par DebugClassLoader\checkCase().

◆ disable()

static disable ( )
static

Disables the wrapping.

Références $function.

◆ enable()

static enable ( )
static

Wraps all autoloaders.

Références $function, et class.

Référencé par Debug\enable().

◆ findFile()

findFile ( string  $class)

Références $class, et null.

Référencé par DebugClassLoader\loadClass().

◆ fixReturnStatements()

fixReturnStatements ( \ReflectionMethod  $method,
string  $returnType 
)
private

◆ getClassLoader()

getClassLoader ( )

◆ getOwnInterfaces()

getOwnInterfaces ( string  $class,
?string  $parent 
)
private

class_implements includes interfaces from the parents so we have to manually exclude them.

Renvoie
string[]

Références $class.

Référencé par DebugClassLoader\checkAnnotations().

◆ getUseStatements()

static getUseStatements ( string  $file)
staticprivate

◆ loadClass()

loadClass ( string  $class)

Loads the given class or interface.

Exceptions

Références $class, DebugClassLoader\$classLoader, DebugClassLoader\checkClass(), elseif, et DebugClassLoader\findFile().

◆ normalizeType()

normalizeType ( string  $type,
string  $class,
?string  $parent,
?\ReflectionType  $returnType 
)
private

Références $type, elseif, et null.

Référencé par DebugClassLoader\setReturnType().

◆ parsePhpDoc()

parsePhpDoc ( \Reflector  $reflector)
private
Paramètres
\ReflectionClass | \ReflectionMethod | \ReflectionProperty$reflector

Référencé par DebugClassLoader\checkAnnotations().

◆ patchMethod()

patchMethod ( \ReflectionMethod  $method,
string  $returnType,
string  $declaringFile,
string  $normalizedType 
)
private

Utility method to add

Renvoie
annotations to the Symfony code-base where it triggers self-deprecations.

Références $c, $format, $i, DebugClassLoader\$method, $namespace, $type, elseif, DebugClassLoader\fixReturnStatements(), et null.

Référencé par DebugClassLoader\checkAnnotations().

◆ patchReturnTypeWillChange()

patchReturnTypeWillChange ( \ReflectionMethod  $method)
private

Utility method to add #[ReturnTypeWillChange] where php triggers deprecations.

Références DebugClassLoader\$method, et class.

Référencé par DebugClassLoader\checkAnnotations().

◆ setReturnType()

setReturnType ( string  $types,
string  $class,
string  $method,
string  $filename,
?string  $parent,
\ReflectionType  $returnType = null 
)
private

Documentation des champs

◆ $annotatedParameters

$annotatedParameters = []
staticprivate

◆ $caseCheck

$caseCheck
staticprivate

◆ $checkedClasses

$checkedClasses = []
staticprivate

◆ $classLoader

const const const $classLoader
private
Valeur initiale :
=> 'array',
'__toString' => 'string',
'__debugInfo' => 'array',
'__serialize' => 'array',
]

Référencé par DebugClassLoader\__construct(), DebugClassLoader\getClassLoader(), et DebugClassLoader\loadClass().

◆ $darwinCache

$darwinCache = ['/' => ['/', []]]
staticprivate

◆ $deprecated

$deprecated = []
staticprivate

◆ $fileOffsets

$fileOffsets = []
staticprivate

◆ $final

$final = []
staticprivate

◆ $finalMethods

$finalMethods = []
staticprivate

◆ $internal

$internal = []
staticprivate

◆ $internalMethods

$internalMethods = []
staticprivate

◆ $isFinder

$isFinder
private

◆ $loaded

$loaded = []
private

◆ $method

◆ $methodTraits

$methodTraits = []
staticprivate

◆ $patchTypes

$patchTypes
private

◆ $returnTypes

$returnTypes = []
staticprivate

◆ BUILTIN_RETURN_TYPES

const const BUILTIN_RETURN_TYPES
private
Valeur initiale :
= [
'void' => true

◆ MAGIC_METHODS

const const const MAGIC_METHODS
private
Valeur initiale :
= [
'__isset' => 'bool'

◆ SPECIAL_RETURN_TYPES

const SPECIAL_RETURN_TYPES
private
Valeur initiale :
= [
'void' => 'void'

La documentation de cette classe a été générée à partir du fichier suivant :