ernadoo / mondial-relay-bundle
Mondial Relay Bundle for Symfony 6.4 / 7.x
Package info
github.com/ErnadoO/mondial-relay-bundle
Type:symfony-bundle
pkg:composer/ernadoo/mondial-relay-bundle
Fund package maintenance!
v3.0.0
2026-04-19 14:45 UTC
Requires
- php: ^8.2
- ernadoo/mondial-relay: ^3.0
- symfony/framework-bundle: ^6.4 || ^7.0
Requires (Dev)
- phpstan/phpstan: ^1.11
- phpunit/phpunit: ^11.0
- symfony/stopwatch: ^6.4 || ^7.0
- twig/twig: ^3.0
Suggests
- symfony/stopwatch: Required for the Symfony Profiler integration
- twig/twig: Required to use the Twig extension (relay point widget helper)
README
Symfony bundle for the ernadoo/mondial-relay PHP SDK.
- Autowiring of
MondialRelayClientInterface - Symfony Profiler integration (call log, duration)
- Twig helper for the relay point selection widget
Requirements
- PHP 8.2+
- Symfony 6.4 or 7.x
Installation
composer require ernadoo/mondial-relay-bundle
If Symfony Flex is enabled the bundle registers automatically. Otherwise add it to config/bundles.php:
return [ // ... Ernadoo\MondialRelayBundle\ErnadooMondialRelayBundle::class => ['all' => true], ];
Configuration
Create config/packages/ernadoo_mondial_relay.yaml:
ernadoo_mondial_relay: credentials: login: '%env(MR_LOGIN)%' password: '%env(MR_PASSWORD)%' customer_id: '%env(MR_CUSTOMER_ID)%' secret_key: '%env(MR_SECRET_KEY)%' sandbox: false # set to true (or '%kernel.debug%') for the MR sandbox
Add the environment variables to your .env:
MR_LOGIN=your-login MR_PASSWORD=your-password MR_CUSTOMER_ID=BDTEST MR_SECRET_KEY=your-secret-key
Usage
Inject MondialRelayClientInterface anywhere in your Symfony application:
use Ernadoo\MondialRelay\Contract\MondialRelayClientInterface; use Ernadoo\MondialRelay\Shipment\Address; use Ernadoo\MondialRelay\Shipment\Parcel; use Ernadoo\MondialRelay\Shipment\ShipmentRequest; class LabelController extends AbstractController { public function __construct( private readonly MondialRelayClientInterface $mondialRelay, ) {} public function print(): Response { $response = $this->mondialRelay->createShipment(new ShipmentRequest( sender: new Address('FR', '59510', 'Hem', '4 Av. Pinay', 'Erwan', 'Nader'), recipient: new Address('FR', '75001', 'Paris', '1 Rue de la Paix', 'Jane', 'Doe'), parcels: [new Parcel(500)], )); return $this->redirect($response->labelOutput); // download PDF } }
Twig widget
{# Renders the Mondial Relay relay-point selection widget #} {{ mondial_relay_widget('FR', '75001') }} {# Just the customer ID, for your own JS integration #} {{ mondial_relay_customer_id() }}
Documentation
Tests
composer install vendor/bin/phpunit