‪TYPO3CMS  ‪main
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)
 
 get (string $packageKey)
 
 getFactories (string $packageKey)
 
 getExtensions (string $packageKey)
 
mixed createService (string $packageKey, string $serviceName, ContainerInterface $container)
 
mixed extendService (string $packageKey, string $serviceName, ContainerInterface $container, $previous=null)
 
 getIterator ()
 

Private Member Functions

 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...]].

Definition at line 65 of file ServiceProviderRegistry.php.

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

Member Function Documentation

◆ create()

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

Definition at line 109 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
Returns
‪mixed

Definition at line 154 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
mixed$previous
Returns
‪mixed

Definition at line 166 of file ServiceProviderRegistry.php.

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

◆ get()

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

Returns service provider by id.

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

Definition at line 98 of file ServiceProviderRegistry.php.

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

◆ getExtensions()

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

Definition at line 144 of file ServiceProviderRegistry.php.

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

◆ getFactories()

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

Definition at line 133 of file ServiceProviderRegistry.php.

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

◆ getIterator()

TYPO3\CMS\Core\DependencyInjection\ServiceProviderRegistry::getIterator ( )

◆ 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 77 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.