Copied!

A ServiceSubscriber exposes its dependencies via the static {@link getSubscribedServices} method.

The getSubscribedServices method returns an array of service types required by such instances,
optionally keyed by the service names used internally. Service types that start with an interrogation
mark "?" are optional, while the other ones are mandatory service dependencies.

The injected service locators SHOULD NOT allow access to any other services not specified by the method.

It is expected that ServiceSubscriber instances consume PSR-11-based service locators internally.
This interface does not dictate any injection method for these service locators, although constructor
injection is recommended.

Abstract Interface
Methods
public abstract static getSubscribedServices () : array
 

Returns an array of service types required by such instances, optionally keyed by the service names used internally.

For mandatory dependencies:

  • ['logger' => 'Psr\Log\LoggerInterface'] means the objects use the "logger" name
    internally to fetch a service which must implement Psr\Log\LoggerInterface.
  • ['loggers' => 'Psr\Log\LoggerInterface[]'] means the objects use the "loggers" name
    internally to fetch an iterable of Psr\Log\LoggerInterface instances.
  • ['Psr\Log\LoggerInterface'] is a shortcut for
  • ['Psr\Log\LoggerInterface' => 'Psr\Log\LoggerInterface']

otherwise:

  • ['logger' => '?Psr\Log\LoggerInterface'] denotes an optional dependency
  • ['loggers' => '?Psr\Log\LoggerInterface[]'] denotes an optional iterable dependency
  • ['?Psr\Log\LoggerInterface'] is a shortcut for
  • ['Psr\Log\LoggerInterface' => '?Psr\Log\LoggerInterface']
  • return string [] The required service types, optionally keyed by service names
Methods
public abstract static getSubscribedServices () : array
 

Returns an array of service types required by such instances, optionally keyed by the service names used internally.

For mandatory dependencies:

  • ['logger' => 'Psr\Log\LoggerInterface'] means the objects use the "logger" name
    internally to fetch a service which must implement Psr\Log\LoggerInterface.
  • ['loggers' => 'Psr\Log\LoggerInterface[]'] means the objects use the "loggers" name
    internally to fetch an iterable of Psr\Log\LoggerInterface instances.
  • ['Psr\Log\LoggerInterface'] is a shortcut for
  • ['Psr\Log\LoggerInterface' => 'Psr\Log\LoggerInterface']

otherwise:

  • ['logger' => '?Psr\Log\LoggerInterface'] denotes an optional dependency
  • ['loggers' => '?Psr\Log\LoggerInterface[]'] denotes an optional iterable dependency
  • ['?Psr\Log\LoggerInterface'] is a shortcut for
  • ['Psr\Log\LoggerInterface' => '?Psr\Log\LoggerInterface']
  • return string [] The required service types, optionally keyed by service names
© 2022 Bruce Wells
Search Namespaces \ Classes
Configuration