Contributed by
Tim Nagel
in #4734 and #5072.

If you are developing an e-commerce solution based on Symfony2, you might want to validate a credit card number before sending it to your payment gateway. Doing so is very simple in Symfony 2.2 thanks to the Luhn algorithm and its implementation as a validator:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
// src/Acme/SubscriptionBundle/Entity/Transaction.php

use Symfony\Component\Validator\Constraints as Assert;

class Transaction
{
    /**
     * @Assert\Luhn(message = "Please check your credit card number.")
     */
    protected $cardNumber;
}

You can also check the card scheme thanks to Symfony\Component\Validator\Constraints\CardSchemeValidator.