Yoast\WP\Lib\Dependency_Injection
Container_Registry{}
Container_Registry class.
Хуков нет.
Использование
$Container_Registry = new Container_Registry(); // use class methods
Методы
- public static find( $id )
- public static get( $name, $id, $invalid_behaviour = 1 )
- public static register( $name, ContainerInterface $container )
Код Container_Registry{} Container Registry{} Yoast 24.1
class Container_Registry { /** * The registered containers. * * @var ContainerInterface[] */ private static $containers = []; /** * Register a container. * * @param string $name The name of the container. * @param ContainerInterface $container The container. * * @return void */ public static function register( $name, ContainerInterface $container ) { self::$containers[ $name ] = $container; } // phpcs:disable Squiz.Commenting.FunctionCommentThrowTag.WrongNumber -- PHPCS doesn't take into account exceptions thrown in called methods. /** * Get an instance from a specific container. * * @param string $name The name of the container. * @param string $id The ID of the service. * @param int $invalid_behaviour The behaviour when the service could not be found. * * @return object|null The service. * * @throws ServiceCircularReferenceException When a circular reference is detected. * @throws ServiceNotFoundException When the service is not defined. */ public static function get( $name, $id, $invalid_behaviour = 1 ) { if ( ! \array_key_exists( $name, self::$containers ) ) { if ( $invalid_behaviour === ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE ) { throw new ServiceNotFoundException( $id ); } return null; } return self::$containers[ $name ]->get( $id, $invalid_behaviour ); } // phpcs:enable Squiz.Commenting.FunctionCommentThrowTag.WrongNumber /** * Attempts to find a given service ID in all registered containers. * * @param string $id The service ID. * * @return string|null The name of the container if the service was found. */ public static function find( $id ) { foreach ( self::$containers as $name => $container ) { if ( $container->has( $id ) ) { return $name; } } } }