Automattic\WooCommerce\Internal\DependencyManagement
ExtendedContainer::get()
Get an instance of a registered class.
Метод класса: ExtendedContainer{}
Хуков нет.
Возвращает
Объект
. An instance of the requested class.
Использование
$ExtendedContainer = new ExtendedContainer(); $ExtendedContainer->get( $id, $new );
- $id(строка) (обязательный)
- The class name.
- $new(true|false)
- True to generate a new instance even if the class was registered as shared.
По умолчанию: false
Код ExtendedContainer::get() ExtendedContainer::get WC 9.7.1
public function get( $id, bool $new = false ) { if ( false === strpos( $id, '\\' ) ) { throw new ContainerException( "Attempt to get an instance of the non-namespaced class '$id' from the container, did you forget to add a namespace import?" ); } // This is a workaround for an issue that arises when using service providers inheriting from AbstractInterfaceServiceProvider: // if one of these providers registers classes both by name and by tag, and one of its registered classes is requested // with 'get' by name before a list of classes is requested by tag, then that service provider gets locked as // the only one providing that tag, and the others get ignored. This is due to the fact that container definitions // are created "on the fly" as needed and the base 'get' method won't try to register additional providers // if the requested tag is already provided by at least one of the already existing definitions. if ( $this->definitions->hasTag( $id ) && ! in_array( $id, $this->known_tags, true ) && $this->providers->provides( $id ) ) { $this->providers->register( $id ); $this->known_tags[] = $id; } return parent::get( $id, $new ); }