woocommerce-paypal-payments
Last commit date
api
2 months ago
assets
2 weeks ago
lib
2 months ago
modules
2 weeks ago
src
2 weeks ago
vendor
2 weeks ago
LICENSE
5 years ago
bootstrap.php
9 months ago
changelog.txt
2 weeks ago
modules.php
2 weeks ago
readme.txt
2 weeks ago
uninstall.php
2 weeks ago
woocommerce-paypal-payments.php
2 weeks ago
bootstrap.php
35 lines
| 1 | <?php |
| 2 | |
| 3 | /** |
| 4 | * Bootstraps the modular app. |
| 5 | * |
| 6 | * @package WooCommerce\PayPalCommerce |
| 7 | */ |
| 8 | namespace WooCommerce\PayPalCommerce; |
| 9 | |
| 10 | use WooCommerce\PayPalCommerce\Vendor\Inpsyde\Modularity\Package; |
| 11 | use WooCommerce\PayPalCommerce\Vendor\Inpsyde\Modularity\Properties\PluginProperties; |
| 12 | use WooCommerce\PayPalCommerce\Vendor\Psr\Container\ContainerInterface; |
| 13 | return function (string $root_dir, array $additional_containers = array(), array $additional_modules = array()): ContainerInterface { |
| 14 | /** |
| 15 | * Skip path check. |
| 16 | * |
| 17 | * @psalm-suppress UnresolvableInclude |
| 18 | */ |
| 19 | $modules = (require "{$root_dir}/modules.php")($root_dir); |
| 20 | $modules = array_merge($modules, $additional_modules); |
| 21 | /** |
| 22 | * Use this filter to add custom module or remove some of existing ones. |
| 23 | * Modules able to access container, add services and modify existing ones. |
| 24 | */ |
| 25 | $modules = apply_filters('woocommerce_paypal_payments_modules', $modules); |
| 26 | // Initialize plugin. |
| 27 | $properties = PluginProperties::new("{$root_dir}/woocommerce-paypal-payments.php"); |
| 28 | $bootstrap = Package::new($properties); |
| 29 | foreach ($modules as $module) { |
| 30 | $bootstrap->addModule($module); |
| 31 | } |
| 32 | $bootstrap->boot(); |
| 33 | return $bootstrap->container(); |
| 34 | }; |
| 35 |