Aller au contenu

Configuration

phil/money-bundle
# config/packages/phil_money.yaml
phil_money:
    currencies: [CAD, USD]  # default: [], every known currency
    default_currency: CAD   # default: null, the first accepted currency
    doctrine_mapping: true  # default: true
CléValeur par défautSens
currencies[]Les codes ISO 4217 qu'accepte l'application, dans l'ordre où un choix les propose. Vide, elle accepte toutes les devises que connaissent les données CLDR, et ne propose dans un choix que celles qui sont en usage : ayant cours légal dans au moins un pays aujourd'hui.
default_currencynullLa devise dans laquelle commence un montant vide. Sans elle, la première de currencies ; avec une liste vide, aucune.
doctrine_mappingtrueAssocie Phil\Money\Money comme objet intégrable de l'ORM, lorsque l'application configure l'ORM.

La configuration est vérifiée à la construction du conteneur : un code que ne connaissent pas les données des devises, ou une valeur par défaut hors d'une liste non vide, arrête le noyau en nommant le code.

Services

ServiceEnregistréRôle
Phil\MoneyBundle\Application\AcceptedCurrenciestoujoursLes devises acceptées et la devise par défaut ; injectez-le là où l'application a besoin de la liste
Phil\MoneyBundle\Infrastructure\Form\MoneyTypetoujours, étiquette form.typeLe type de formulaire
Phil\MoneyBundle\Infrastructure\Validator\AcceptedCurrencyValidatortoujours, étiquette validator.constraint_validatorLe validateur de AcceptedCurrency
Phil\MoneyBundle\Infrastructure\Validator\MoneyRangeValidatortoujours, étiquette validator.constraint_validatorLe validateur de MoneyRange
Phil\MoneyBundle\Infrastructure\Twig\MoneyExtensionlorsque Twig est installé, étiquettes twig.attribute_extension et twig.runtimeLe filtre format_money et les fonctions money_schema et price_schema

Lorsque DoctrineBundle est enregistré, le bundle ajoute ceci au début de sa configuration :

doctrine:
    dbal:
        types:
            phil_currency: Phil\MoneyBundle\Infrastructure\Doctrine\CurrencyType
    orm:                     # only when the application configures the ORM and doctrine_mapping is true
        mappings:
            PhilMoney:
                type: xml
                is_bundle: false
                dir: '%vendor%/phil/money-bundle/config/doctrine'
                prefix: Phil\Money

Une application avec plusieurs gestionnaires d'entités définit doctrine_mapping: false et déclare l'association PhilMoney sur les gestionnaires qui en ont besoin.

Taux de change

Le bundle n'en garde aucun et ne convertit rien : un montant reste dans sa devise, et Money refuse d'en combiner deux. Une application qui convertit (une liste de prix dans une deuxième devise, un rapport dans une seule) possède ses taux et leurs dates, et multiplie par eux avec son propre arrondi.