Skip to content
Merged
Show file tree
Hide file tree
Changes from 28 commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
dd496f8
🔌 Migrate bootstrap and PluginModule to inpsyde/modularity (Phase 1)
danieldudzic Mar 20, 2026
cdb2dcc
🔌 Migrate inpsyde-http-client to inpsyde/modularity (Phase 2)
danieldudzic Mar 20, 2026
ff2e2a5
🔌 Migrate inpsyde-debug to inpsyde/modularity (Phase 2)
danieldudzic Mar 20, 2026
1b56306
🔌 Migrate paypal-pos-logging to inpsyde/modularity (Phase 2)
danieldudzic Mar 20, 2026
0e57949
🔌 Migrate paypal-pos-notices to inpsyde/modularity (Phase 2)
danieldudzic Mar 20, 2026
f67c79a
🔌 Migrate paypal-pos-assets to inpsyde/modularity (Phase 2)
danieldudzic Mar 20, 2026
4c603c9
🔌 Migrate inpsyde-wc-status-report to inpsyde/modularity (Phase 2)
danieldudzic Mar 20, 2026
d911aa3
🔌 Migrate paypal-pos-webhooks to inpsyde/modularity (Phase 2)
danieldudzic Mar 20, 2026
584ac48
🔌 Migrate paypal-pos-auth to inpsyde/modularity (Phase 2)
danieldudzic Mar 20, 2026
21f686f
🔌 Migrate inpsyde-state-machine to inpsyde/modularity (Phase 3)
danieldudzic Mar 20, 2026
d9117ff
🔌 Migrate inpsyde-woocommerce-lifecycle-events to inpsyde/modularity …
danieldudzic Mar 20, 2026
9bcc47f
🔌 Migrate paypal-pos-queue to inpsyde/modularity (Phase 3)
danieldudzic Mar 20, 2026
08eddbc
🔌 Migrate paypal-pos-product-debug to inpsyde/modularity (Phase 3)
danieldudzic Mar 20, 2026
42ed84b
🔌 Migrate paypal-pos-sync to inpsyde/modularity (Phase 3)
danieldudzic Mar 20, 2026
b26a215
🔌 Migrate paypal-pos-settings to inpsyde/modularity (Phase 3)
danieldudzic Mar 20, 2026
e1e8bb3
🔌 Migrate paypal-pos-product-settings to inpsyde/modularity (Phase 3)
danieldudzic Mar 20, 2026
9db0b1f
🔌 Migrate paypal-pos-onboarding to inpsyde/modularity (Phase 3)
danieldudzic Mar 20, 2026
a470c22
🔌 Migrate Library classes and remaining modules to inpsyde/modularity…
danieldudzic Mar 20, 2026
b907506
🔌 Replace Dhii non-modularity interfaces with project-level + PSR-14 …
danieldudzic Mar 20, 2026
23eaa7c
🧹 Remove Dhii dependencies and update tests (Phase 6)
danieldudzic Mar 20, 2026
d6be373
🐛 Fix extension argument order for inpsyde/modularity compatibility
danieldudzic Mar 20, 2026
de82299
📦 Add Mozart-scoped psr/container and inpsyde/modularity to lib/packages
danieldudzic Mar 20, 2026
404b2a1
🔧 Move psr/container and inpsyde/modularity to require-dev, add Mozar…
danieldudzic Mar 20, 2026
c66adb6
🛡️ Exclude lib/ from PHP-Scoper to prevent double-prefixing
danieldudzic Mar 20, 2026
51687b9
✏️ Update ContainerInterface signatures for PSR-11 2.x compatibility
danieldudzic Mar 20, 2026
4b5fe41
🔀 Replace Inpsyde\Modularity and Psr\Container imports with scoped na…
danieldudzic Mar 20, 2026
f3193b9
Merge branch 'dev/main' into dev/IZET-510-migrate-pos-to-inpsyde-modu…
danieldudzic Mar 20, 2026
55206ce
🧪 Bootstrap root autoloader for module tests to resolve scoped namesp…
danieldudzic Mar 21, 2026
e65e5c9
🔥 Remove Mozart, use original Inpsyde\Modularity and Psr\Container na…
danieldudzic Mar 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 15 additions & 33 deletions bootstrap.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,46 +4,28 @@

namespace Syde\PayPal\PointOfSale;

use Dhii\Container\CachingContainer;
use Dhii\Container\CompositeCachingServiceProvider;
use Dhii\Container\DelegatingContainer;
use Dhii\Container\ProxyContainer;
use Dhii\Modular\Module\ModuleInterface;
use Dhii\Validation\ValidatorInterface;
use Psr\Container\ContainerInterface;

return static function (string $appDir, bool $validate = false): ContainerInterface {
$modules = [];
$classNames = require $appDir . '/modules.php';
array_walk(
$classNames,
static function (string $className) use (&$modules): void {
$modules[] = new $className();
}
);

$providers = [];
foreach ($modules as $module) {
assert($module instanceof ModuleInterface);
$providers[] = $module->setup();
use Syde\PayPal\PointOfSale\Validation\ValidatorInterface;
use Syde\Vendor\Zettle\Inpsyde\Modularity\Package;
use Syde\Vendor\Zettle\Inpsyde\Modularity\Properties\PluginProperties;

return static function (string $pluginFile, bool $validate = false): Package {
$properties = PluginProperties::new($pluginFile);
$package = Package::new($properties);

$classNames = require dirname($pluginFile) . '/modules.php';
foreach ($classNames as $className) {
$package->addModule(new $className());
}

$proxy = new ProxyContainer();
$provider = new CompositeCachingServiceProvider($providers);
$container = new CachingContainer(new DelegatingContainer($provider, $proxy));
$proxy->setInnerContainer($container);
$package->build();

if ($validate) {
$requirementsValidator = $container->get('paypal-pos.requirements.validator');
$requirementsValidator = $package->container()->get('paypal-pos.requirements.validator');
assert($requirementsValidator instanceof ValidatorInterface);

$requirementsValidator->validate(null);
}

foreach ($modules as $module) {
assert($module instanceof ModuleInterface);
$module->run($proxy);
}
$package->boot();

return $proxy;
return $package;
};
22 changes: 16 additions & 6 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,6 @@
"php": "^8.2",
"ext-json": "*",
"ext-mbstring": "*",
"container-interop/service-provider": "^0.4.0",
"dhii/containers": "^0.1",
"dhii/module-interface": "^0.2 || ^0.3",
"dhii/validator": "^0.1",
"inpsyde/assets": "^2.1",
"inpsyde/inpsyde-debug": "*",
"inpsyde/inpsyde-http-client": "*",
Expand All @@ -65,25 +61,28 @@
"inpsyde/paypal-pos-sync": "*",
"inpsyde/paypal-pos-webhooks": "*",
"oomphinc/composer-installers-extender": "^2.0",
"psr/container": "^1.0",
"psr/event-dispatcher": "^1.0",
"sniccowp/php-scoper-wordpress-excludes": "^6.8"
},
"require-dev": {
"brain/monkey": "^2.0",
"fakerphp/faker": "^1.9@dev",
"inpsyde/modularity": "^1.7",
"inpsyde/php-coding-standards": "1.0.0-RC.1",
"mockery/mockery": "^1.3",
"php-stubs/woocommerce-stubs": "^4.3",
"php-stubs/wordpress-stubs": "^5.4",
"phpunit/phpunit": "^8.0 || ^9.0",
"psr/container": "^1.1 || ^2.0",
"symfony/var-dumper": "^5.0",
"vimeo/psalm": "^5",
"vlucas/phpdotenv": "^4.1",
"webmozart/path-util": "^2.3@stable"
},
"autoload": {
"psr-4": {
"Syde\\PayPal\\PointOfSale\\": "src/"
"Syde\\PayPal\\PointOfSale\\": "src/",
"Syde\\Vendor\\Zettle\\": "lib/packages/"
}
},
"autoload-dev": {
Expand Down Expand Up @@ -131,6 +130,17 @@
},
"inpsyde-modules": {
"dump-modules": "modules.php"
},
"mozart": {
"dep_namespace": "Syde\\Vendor\\Zettle\\",
"dep_directory": "/lib/packages/",
"classmap_directory": "/lib/classes/",
"classmap_prefix": "SPPZ_",
"packages": [
"psr/container",
"inpsyde/modularity"
],
"delete_vendor_directories": true
}
}
}
Loading
Loading