MoneyBundle

Documentation

Version Not Yet Released

You are viewing the documentation for the 2.x branch of the MoneyBundle package which has not yet been released. Be aware that the API for this version may change before release.

Serializer

The MoneyBundle provides support for serializing Money\Money instances using either the Symfony Serializer component or the JMS Serializer (note, the JMSSerializerBundle must be installed to enable the serialization handler for the JMS serializer).

Below is an example of building a JSON response in a controller using the Symfony Serializer:

<?php

namespace App\Controller\API;

use Money\Money;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;

final class MoneyCalculatorController extends AbstractController
{
    #[Route(path: '/api/money/add', name: 'app_api_add_money', methods: ['POST'])]
    public function apiAddValues(Request $request): JsonResponse
    {
        $firstValue = $request->request->getInt('first_value');
        $secondValue = $request->request->getInt('second_value');

        $addedValues = Money::USD($firstValue)->add(Money::USD($secondValue));

        return $this->json($addedValues);
    }
}

Below is an example of how a Money\Money instance is serialized into JSON format:

{
    "amount": "1000",
    "currency": "USD"
}