‪TYPO3CMS  11.5
TYPO3\CMS\Core\DependencyInjection\ServiceProviderRegistry Class Reference
Inheritance diagram for TYPO3\CMS\Core\DependencyInjection\ServiceProviderRegistry:

Public Member Functions

 __construct (PackageManager $packageManager, bool $failsafe=false)
 
bool has (string $packageKey)
 
ServiceProviderInterface get (string $packageKey)
 
array getFactories (string $packageKey)
 
array getExtensions (string $packageKey)
 
mixed createService (string $packageKey, string $serviceName, ContainerInterface $container)
 
mixed extendService (string $packageKey, string $serviceName, ContainerInterface $container, $previous=null)
 
Generator getIterator ()
 

Private Member Functions

ServiceProviderInterface create (string $packageKey, Package $package=null)
 

Private Attributes

PackageManager $packageManager
 
bool $failsafe
 
array $instances
 
array $serviceFactories = array( )
 
array $serviceExtensions = array( )
 

Detailed Description

A class that holds the list of service providers of a project. This class is designed so that service provider do not need to be instantiated each time the registry is filled. They can be lazily instantiated if needed.

Definition at line 30 of file ServiceProviderRegistry.php.

Constructor & Destructor Documentation

◆ __construct()

TYPO3\CMS\Core\DependencyInjection\ServiceProviderRegistry::__construct ( PackageManager  $packageManager,
bool  $failsafe = false 
)

Initializes the registry from a list of service providers. This list of service providers can be passed as ServiceProvider instances, class name string, or an array of ['class name', [constructor params...]].

Parameters
PackageManager$packageManager
bool$failsafe

Definition at line 68 of file ServiceProviderRegistry.php.

References TYPO3\CMS\Core\DependencyInjection\ServiceProviderRegistry\$failsafe, and TYPO3\CMS\Core\DependencyInjection\ServiceProviderRegistry\$packageManager.

Member Function Documentation

◆ create()

ServiceProviderInterface TYPO3\CMS\Core\DependencyInjection\ServiceProviderRegistry::create ( string  $packageKey,
Package  $package = null 
)
private

Returns service provider by id.

Parameters
string$packageKey‪Key of the service provider in the registry
Package | null$package
Returns
ServiceProviderInterface

Definition at line 114 of file ServiceProviderRegistry.php.

Referenced by TYPO3\CMS\Core\DependencyInjection\ServiceProviderRegistry\get(), and TYPO3\CMS\Core\DependencyInjection\ServiceProviderRegistry\getIterator().

◆ createService()

mixed TYPO3\CMS\Core\DependencyInjection\ServiceProviderRegistry::createService ( string  $packageKey,
string  $serviceName,
ContainerInterface  $container 
)
Parameters
string$packageKey‪Key of the service provider in the registry
string$serviceName‪Name of the service to fetch
ContainerInterface$container
Returns
‪mixed

Definition at line 162 of file ServiceProviderRegistry.php.

References TYPO3\CMS\Core\DependencyInjection\ServiceProviderRegistry\getFactories().

◆ extendService()

mixed TYPO3\CMS\Core\DependencyInjection\ServiceProviderRegistry::extendService ( string  $packageKey,
string  $serviceName,
ContainerInterface  $container,
  $previous = null 
)
Parameters
string$packageKey‪Key of the service provider in the registry
string$serviceName‪Name of the service to fetch
ContainerInterface$container
mixed$previous
Returns
‪mixed

Definition at line 176 of file ServiceProviderRegistry.php.

References TYPO3\CMS\Core\DependencyInjection\ServiceProviderRegistry\getExtensions().

◆ get()

ServiceProviderInterface TYPO3\CMS\Core\DependencyInjection\ServiceProviderRegistry::get ( string  $packageKey)

Returns service provider by id.

Parameters
string$packageKey‪Key of the service provider in the registry
Returns
ServiceProviderInterface

Definition at line 102 of file ServiceProviderRegistry.php.

References TYPO3\CMS\Core\DependencyInjection\ServiceProviderRegistry\create().

◆ getExtensions()

array TYPO3\CMS\Core\DependencyInjection\ServiceProviderRegistry::getExtensions ( string  $packageKey)

Returns the result of the getExtensions call on service provider whose key in the registry is $packageKey. The result is cached in the registry so two successive calls will trigger getExtensions only once.

Parameters
string$packageKey‪Key of the service provider in the registry
Returns
‪array

Definition at line 151 of file ServiceProviderRegistry.php.

Referenced by TYPO3\CMS\Core\DependencyInjection\ServiceProviderRegistry\extendService().

◆ getFactories()

array TYPO3\CMS\Core\DependencyInjection\ServiceProviderRegistry::getFactories ( string  $packageKey)

Returns the result of the getFactories call on service provider whose key in the registry is $packageKey. The result is cached in the registry so two successive calls will trigger getFactories only once.

Parameters
string$packageKey‪Key of the service provider in the registry
Returns
‪array

Definition at line 139 of file ServiceProviderRegistry.php.

Referenced by TYPO3\CMS\Core\DependencyInjection\ServiceProviderRegistry\createService().

◆ getIterator()

Generator TYPO3\CMS\Core\DependencyInjection\ServiceProviderRegistry::getIterator ( )
Returns
‪\Generator

Definition at line 185 of file ServiceProviderRegistry.php.

References TYPO3\CMS\Core\DependencyInjection\ServiceProviderRegistry\create().

◆ has()

bool TYPO3\CMS\Core\DependencyInjection\ServiceProviderRegistry::has ( string  $packageKey)

Whether an id exists.

Parameters
string$packageKey‪Key of the service provider in the registry
Returns
‪bool true on success or false on failure.

Definition at line 80 of file ServiceProviderRegistry.php.

Member Data Documentation

◆ $failsafe

bool TYPO3\CMS\Core\DependencyInjection\ServiceProviderRegistry::$failsafe
private

◆ $instances

array TYPO3\CMS\Core\DependencyInjection\ServiceProviderRegistry::$instances
private

The array with constructed values.

An array<packageKey, ServiceProviderInterface>

Definition at line 44 of file ServiceProviderRegistry.php.

◆ $packageManager

PackageManager TYPO3\CMS\Core\DependencyInjection\ServiceProviderRegistry::$packageManager
private

◆ $serviceExtensions

array TYPO3\CMS\Core\DependencyInjection\ServiceProviderRegistry::$serviceExtensions = array( )
private

An array of service extensions (the result of the call to 'getExtensions'), indexed by service provider.

An array<packageKey, array<servicename, callable>>

Definition at line 58 of file ServiceProviderRegistry.php.

◆ $serviceFactories

array TYPO3\CMS\Core\DependencyInjection\ServiceProviderRegistry::$serviceFactories = array( )
private

An array of service factories (the result of the call to 'getFactories'), indexed by service provider.

An array<packageKey, array<servicename, callable>>

Definition at line 51 of file ServiceProviderRegistry.php.