‪TYPO3CMS  ‪main
TYPO3\CMS\Install\ExtensionScanner\Php\GeneratorClassesResolver Class Reference
Inheritance diagram for TYPO3\CMS\Install\ExtensionScanner\Php\GeneratorClassesResolver:

Public Member Functions

 __construct (BuilderFactory $builderFactory=null)
 
 enterNode (Node $node)
 

Protected Member Functions

 substituteClassString (Expr $argValue)
 
 substituteMakeInstance (StaticCall $node, Expr $argValue)
 
 duplicateNodeAttributes (Node $source, Node ... $targets)
 

Protected Attributes

BuilderFactory $builderFactory
 

Detailed Description

Create a fully qualified class name object from first argument of GeneralUtility::makeInstance('My\Package\Class\Name') if given as string and not as My\Package\Class\Name::class language construct.

This resolver is to be called after generic NameResolver::class, but before other search and find visitors that implement CodeScannerInterface::class

This class is only meant to be used within EXT:install and is not part of the TYPO3 Core API.

Definition at line 41 of file GeneratorClassesResolver.php.

Constructor & Destructor Documentation

◆ __construct()

TYPO3\CMS\Install\ExtensionScanner\Php\GeneratorClassesResolver::__construct ( BuilderFactory  $builderFactory = null)

Member Function Documentation

◆ duplicateNodeAttributes()

TYPO3\CMS\Install\ExtensionScanner\Php\GeneratorClassesResolver::duplicateNodeAttributes ( Node  $source,
Node ...  $targets 
)
protected

Duplicates node positions in source file, based on the assumption that only lines are relevant. In case this shall be used for code-migration, real offset positions would be required.

Definition at line 125 of file GeneratorClassesResolver.php.

Referenced by TYPO3\CMS\Install\ExtensionScanner\Php\GeneratorClassesResolver\substituteClassString(), and TYPO3\CMS\Install\ExtensionScanner\Php\GeneratorClassesResolver\substituteMakeInstance().

◆ enterNode()

TYPO3\CMS\Install\ExtensionScanner\Php\GeneratorClassesResolver::enterNode ( Node  $node)

◆ substituteClassString()

TYPO3\CMS\Install\ExtensionScanner\Php\GeneratorClassesResolver::substituteClassString ( Expr  $argValue)
protected

Substitutes class-string values with their corresponding class constant representation (‘'Vendor\ClassName’->\Vendor\ClassName::class`).

Definition at line 86 of file GeneratorClassesResolver.php.

References TYPO3\CMS\Install\ExtensionScanner\Php\GeneratorClassesResolver\duplicateNodeAttributes().

Referenced by TYPO3\CMS\Install\ExtensionScanner\Php\GeneratorClassesResolver\enterNode().

◆ substituteMakeInstance()

TYPO3\CMS\Install\ExtensionScanner\Php\GeneratorClassesResolver::substituteMakeInstance ( StaticCall  $node,
Expr  $argValue 
)
protected

Substitutes makeInstance invocations with proper new invocations. ‘GeneralUtility(\Vendor\ClassName::class, 'a’, 'b')->new \Vendor\ClassName('a', 'b')`

Definition at line 104 of file GeneratorClassesResolver.php.

References TYPO3\CMS\Install\ExtensionScanner\Php\GeneratorClassesResolver\duplicateNodeAttributes().

Referenced by TYPO3\CMS\Install\ExtensionScanner\Php\GeneratorClassesResolver\enterNode().

Member Data Documentation

◆ $builderFactory

BuilderFactory TYPO3\CMS\Install\ExtensionScanner\Php\GeneratorClassesResolver::$builderFactory
protected