- Can I use sylius/omnipay-bundle in a Laravel application?
- No. It is a Symfony bundle that registers through SyliusOmnipayBundle in a Symfony AppKernel and has no Laravel service provider, facade, or package discovery entry. Its Composer constraints target old Symfony and PHP versions, so adding it to a modern Laravel app creates dependency conflicts rather than an integration. For Laravel, use league/omnipay directly or a first-party PSP SDK.
- What versions of Laravel and PHP does sylius/omnipay-bundle support?
- It does not support Laravel at all. The bundle targets PHP 5.6/7.0-era runtimes and Symfony 2.7/2.8/3.x with Omnipay v2, which is well outside current Laravel requirements. Do not treat its Composer constraints as Laravel compatibility.
- Is sylius/omnipay-bundle still maintained?
- No. The repository is archived and READ-ONLY, with 17 stars and 0 dependents, so there is no maintainer or community to escalate to. Archived payment code receives no security patches. Avoid new adoption, especially for payment flows.
- What does sylius/omnipay-bundle actually do?
- It is a Symfony dependency-injection and configuration bridge. It reads the sylius_omnipay.gateways config tree, uses the GatewayFactory to instantiate Omnipay gateway objects, and exposes them as container services. The real payment logic lives in league/omnipay and the individual gateway packages, so the bundle is replaceable glue rather than a payment abstraction.
- What should Laravel developers use instead of sylius/omnipay-bundle?
- Use league/omnipay with the specific gateway package, bind a configured GatewayInterface in a service provider via Omnipay::create($factory)->initialize($params), wrap it in a thin PaymentService, dispatch domain events on success or failure, and queue webhook processing. For new work, evaluate a first-party PSP SDK or hosted checkout to keep card data out of scope. This reproduces what the bundle does with less dead weight and no EOL Symfony constraint.
- How do I migrate from SyliusOmnipayBundle to direct Omnipay or a new payment provider?
- Introduce an internal PaymentGateway interface as an anti-corruption layer that delegates to the bundle today, then swaps to direct Omnipay, then to the target platform while checkout code stays untouched. Migrate gateway by gateway rather than big-bang, starting with the highest-volume or highest-risk provider so the seam is proven under real traffic. That decouples the migration from application code and lets each provider cut over on its own schedule.
- Is sylius/omnipay-bundle safe for production payment processing?
- It carries high risk. Archived code receives no security patches, payment flows are the highest-scrutiny surface in a system, and an EOL Symfony 2/PHP 7 stack is difficult to defend in a PCI-DSS or SAQ audit. Gateway packages also evolve independently while the bundle pins old majors, so provider API changes can break silently. It only fits an inherited Sylius 1.x/Symfony 2-3 application already on Omnipay, and even then someone must own a fork.
- What is the Omnipay v2 versus v3 namespace issue with this bundle?
- The bundle is built for Omnipay v2, which uses Omnipay\Common\GatewayFactory. Omnipay v3 uses Omnipay\Omnipay::create(), so copy-pasting v3 examples into v2-era bundle code fails. Check the gateway package major versions before assuming compatibility.
- Which payment gateways can I configure with sylius/omnipay-bundle?
- It can expose any Omnipay gateway package that matches its supported v2-era constraints, such as omnipay/stripe or omnipay/paypal in compatible versions. It does not implement gateway-specific logic itself. Because it pins old majors, newer gateway packages and provider APIs may not work without changes.
- How is sylius/omnipay-bundle configured?
- Configuration goes through the Symfony config tree sylius_omnipay.gateways, which the bundle reads to instantiate Omnipay gateways via GatewayFactory and expose them as container services. This is Symfony DI configuration, not Laravel config/payment.php or service-provider registration. In Laravel, configure your own Omnipay binding directly in a service provider or config file.