woocommerce-paypal-payments/bootstrap.php
Alex P c59683b5ea Fix phpcs
I guess the @since comments are not very critical for our hooks,
and anyway it should not be an error, finding the first version for every hook would take lots of time now.
not sure if there is a better way to suppress it in phpcs
2022-06-15 16:20:43 +03:00

58 lines
1.7 KiB
PHP

<?php
/**
* Bootstraps the modular app.
*
* @package WooCommerce\PayPalCommerce
*/
use Dhii\Container\CachingContainer;
use Dhii\Container\CompositeCachingServiceProvider;
use Dhii\Container\CompositeContainer;
use Dhii\Container\DelegatingContainer;
use Dhii\Container\ProxyContainer;
use Dhii\Modular\Module\ModuleInterface;
use Interop\Container\ServiceProviderInterface;
use Psr\Container\ContainerInterface;
return function (
string $root_dir,
ContainerInterface ...$additional_containers
): ContainerInterface {
$modules = ( require "$root_dir/modules.php" )( $root_dir );
/**
* Use this filter to add custom module or remove some of existing ones.
* Modules able to access container, add services and modify existing ones.
*/
$modules = apply_filters( 'woocommerce_paypal_payments_modules', $modules );
$providers = array_map(
function ( ModuleInterface $module ): ServiceProviderInterface {
return $module->setup();
},
$modules
);
$provider = new CompositeCachingServiceProvider( $providers );
$proxy_container = new ProxyContainer();
// TODO: caching does not work currently,
// may want to consider fixing it later (pass proxy as parent to DelegatingContainer)
// for now not fixed since we were using this behavior for long time and fixing it now may break things.
$container = new DelegatingContainer( $provider );
$app_container = new CachingContainer(
new CompositeContainer(
array_merge(
$additional_containers,
array( $container )
)
)
);
$proxy_container->setInnerContainer( $app_container );
foreach ( $modules as $module ) {
/* @var $module ModuleInterface module */
$module->run( $app_container );
}
return $app_container;
};