Joomla CMS  4.2.2
Documentation des API du CMS Joomla en version 4.2.2
Référence de la classe Container
+ Graphe d'héritage de Container:

Fonctions membres publiques

 __construct (?ContainerInterface $parent=null)
 
 get ($resourceName)
 
 has ($resourceName)
 
 exists ($key)
 
 alias ($alias, $key)
 
 isShared (string $resourceName)
 
 isProtected (string $resourceName)
 
 tag ($tag, array $keys)
 
 getTagged ($tag)
 
 buildObject ($resourceName, $shared=false)
 
 buildSharedObject ($resourceName)
 
 createChild ()
 
 extend ($resourceName, callable $callable)
 
 set ($key, $value, $shared=false, $protected=false)
 
 protect ($key, $value, $shared=false)
 
 share ($key, $value, $protected=false)
 
 getResource (string $key, bool $bail=false)
 
 getNewInstance ($key)
 
 registerServiceProvider (ServiceProviderInterface $provider)
 
 getKeys ()
 
- Fonctions membres publiques hérités de ContainerInterface
 get (string $id)
 
 has (string $id)
 

Fonctions membres protégées

 resolveAlias ($resourceName)
 

Attributs protégés

 $aliases = []
 
 $resources = []
 
 $parent
 
 $tags = []
 

Fonctions membres privées

 hasFlag (string $resourceName, string $method, bool $default=true)
 
 getMethodArgs (\ReflectionMethod $method)
 

Description détaillée

The Container class.

Depuis
1.0

Documentation des constructeurs et destructeur

◆ __construct()

__construct ( ?ContainerInterface  $parent = null)

Constructor for the DI Container

Paramètres
ContainerInterface | null$parentParent for hierarchical containers.
Depuis
1.0

Références Container\$parent, et parent.

Documentation des fonctions membres

◆ alias()

alias (   $alias,
  $key 
)

Create an alias for a given key for easy access.

Paramètres
string$aliasThe alias name
string$keyThe key to alias
Renvoie
$this
Depuis
1.0

Références $key, et $this.

◆ buildObject()

buildObject (   $resourceName,
  $shared = false 
)

Build an object of the requested class

Creates an instance of the class specified by $resourceName with all dependencies injected. If the dependencies cannot be completely resolved, a DependencyResolutionException is thrown.

Paramètres
string$resourceNameThe class name to build.
boolean$sharedTrue to create a shared resource.
Renvoie
object|false Instance of class specified by $resourceName with all dependencies injected. Returns an object if the class exists and false otherwise
Depuis
1.0
Exceptions
DependencyResolutionExceptionif the object could not be built (due to missing information)

Références $key, Container\getMethodArgs(), Container\has(), null, et Container\resolveAlias().

Référencé par Container\buildSharedObject(), et Container\getMethodArgs().

◆ buildSharedObject()

buildSharedObject (   $resourceName)

Convenience method for building a shared object.

Paramètres
string$resourceNameThe class name to build.
Renvoie
object|false Instance of class specified by $resourceName with all dependencies injected. Returns an object if the class exists and false otherwise
Depuis
1.0

Références Container\buildObject().

◆ createChild()

createChild ( )

Create a child Container with a new property scope that has the ability to access the parent scope when resolving.

Renvoie
Container A new container with the current as a parent
Depuis
1.0

Références $this.

◆ exists()

exists (   $key)

Method to check if specified dataStore key exists.

Paramètres
string$keyName of the dataStore key to check.
Renvoie
boolean True for success
Depuis
1.0
Obsolète:
3.0 Use ContainerInterface::has() instead

Références $key, class, et Container\has().

◆ extend()

extend (   $resourceName,
callable  $callable 
)

Extend a defined service Closure by wrapping the existing one with a new callable function.

This works very similar to a decorator pattern. Note that this only works on service Closures that have been defined in the current container, not parent containers.

Paramètres
string$resourceNameThe unique identifier for the Closure or property.
callable$callableA callable to wrap the original service Closure.
Renvoie
void
Depuis
1.0
Exceptions
KeyNotFoundException

Références $c, $key, Container\getResource(), et Container\resolveAlias().

◆ get()

get (   $resourceName)

Retrieve a resource

Paramètres
string$resourceNameName of the resource to get.
Renvoie
mixed The requested resource
Depuis
1.0
Exceptions
KeyNotFoundException

Références $key, parent, et Container\resolveAlias().

Référencé par ServiceProviderInterface\register(), et ComponentDispatcherFactory\register().

◆ getKeys()

getKeys ( )

Retrieve the keys for services assigned to this container.

Renvoie
array
Depuis
1.5.0

◆ getMethodArgs()

getMethodArgs ( \ReflectionMethod  $method)
private

Build an array of method arguments.

Paramètres
\ReflectionMethod$methodMethod for which to build the argument array.
Renvoie
array Array of arguments to pass to the method.
Depuis
1.0
Exceptions
DependencyResolutionException

Références $message, $method, Container\buildObject(), Container\getResource(), et null.

Référencé par Container\buildObject().

◆ getNewInstance()

getNewInstance (   $key)

Method to force the container to return a new instance of the results of the callback for requested $key.

Paramètres
string$keyName of the resources key to get.
Renvoie
mixed Results of running the callback for the specified key.
Depuis
1.0

Références $key, Container\getResource(), et Container\resolveAlias().

◆ getResource()

getResource ( string  $key,
bool  $bail = false 
)

Get the raw data assigned to a key.

Paramètres
string$keyThe key for which to get the stored item.
boolean$bailThrow an exception, if the key is not found
Renvoie
ContainerResource|null The resource if present, or null if instructed to not bail
Depuis
2.0.0
Exceptions
KeyNotFoundException

Références $key, $this, null, parent, ContainerResource\PROTECT, et ContainerResource\SHARE.

Référencé par Container\extend(), Container\getMethodArgs(), et Container\getNewInstance().

◆ getTagged()

getTagged (   $tag)

Fetch all services registered to the given tag.

Paramètres
string$tagThe tag name
Renvoie
array The resolved services for the given tag
Depuis
1.5.0

◆ has()

has (   $resourceName)

Check if specified resource exists.

Paramètres
string$resourceNameName of the resource to check.
Renvoie
boolean true if key is defined, false otherwise
Depuis
1.5.0

Références $key, parent, et Container\resolveAlias().

Référencé par Container\buildObject(), Container\exists(), et Container\set().

◆ hasFlag()

hasFlag ( string  $resourceName,
string  $method,
bool  $default = true 
)
private

Check whether a flag (i.e., one of 'shared' or 'protected') is set

Paramètres
string$resourceNameName of the resource to check.
string$methodMethod to delegate to
boolean$defaultDefault return value
Renvoie
boolean
Depuis
2.0.0
Exceptions
KeyNotFoundException

Références $default, $key, $method, parent, et Container\resolveAlias().

Référencé par Container\isProtected(), et Container\isShared().

◆ isProtected()

isProtected ( string  $resourceName)

Check whether a resource is protected

Paramètres
string$resourceNameName of the resource to check.
Renvoie
boolean
Depuis
2.0.0

Références Container\hasFlag().

Référencé par Container\set().

◆ isShared()

isShared ( string  $resourceName)

Check whether a resource is shared

Paramètres
string$resourceNameName of the resource to check.
Renvoie
boolean
Depuis
2.0.0

Références Container\hasFlag().

◆ protect()

protect (   $key,
  $value,
  $shared = false 
)

Shortcut method for creating protected keys.

Paramètres
string$keyName of dataStore key to set.
mixed$valueCallable function to run or string to retrive when requesting the specified $key.
boolean$sharedTrue to create and store a shared instance.
Renvoie
$this
Depuis
1.0

Références $key, et $value.

◆ registerServiceProvider()

registerServiceProvider ( ServiceProviderInterface  $provider)

Register a service provider to the container.

Paramètres
ServiceProviderInterface$providerThe service provider to register.
Renvoie
$this
Depuis
1.0

Références $this, et ServiceProviderInterface\register().

◆ resolveAlias()

resolveAlias (   $resourceName)
protected

Resolve a resource name.

If the resource name is an alias, the corresponding key is returned. If the resource name is not an alias, the resource name is returned unchanged.

Paramètres
string$resourceNameThe key to search for.
Renvoie
string
Depuis
1.0

Référencé par Container\buildObject(), Container\extend(), Container\get(), Container\getNewInstance(), Container\has(), Container\hasFlag(), Container\set(), et Container\tag().

◆ set()

set (   $key,
  $value,
  $shared = false,
  $protected = false 
)

Set a resource to the container. If the value is null the resource is removed.

Paramètres
string$keyName of resources key to set.
mixed$valueCallable function to run or string to retrive when requesting the specified $key.
boolean$sharedTrue to create and store a shared instance.
boolean$protectedTrue to protect this item from being overwritten. Useful for services.
Renvoie
$this
Depuis
1.0
Exceptions
ProtectedKeyExceptionThrown if the provided key is already set and is protected.

Références $key, $mode, $this, $value, Container\has(), Container\isProtected(), ContainerResource\NO_PROTECT, ContainerResource\NO_SHARE, null, ContainerResource\PROTECT, Container\resolveAlias(), et ContainerResource\SHARE.

◆ share()

share (   $key,
  $value,
  $protected = false 
)

Shortcut method for creating shared keys.

Paramètres
string$keyName of dataStore key to set.
mixed$valueCallable function to run or string to retrive when requesting the specified $key.
boolean$protectedTrue to protect this item from being overwritten. Useful for services.
Renvoie
$this
Depuis
1.0

Références $key, et $value.

◆ tag()

tag (   $tag,
array  $keys 
)

Assign a tag to services.

Paramètres
string$tagThe tag name
array$keysThe service keys to tag
Renvoie
$this
Depuis
1.5.0

Références $key, $this, et Container\resolveAlias().

Documentation des champs

◆ $aliases

$aliases = []
protected

◆ $parent

$parent
protected

Référencé par Container\__construct().

◆ $resources

$resources = []
protected

◆ $tags

$tags = []
protected

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