SymfonyE-CommerceStripeTechSnippetPHP

26.03.2021

Stripe & Symfony: Performance verbessern (Cache)

Ein kurzer Tipp zur Verbesserung der Performance mit Stripe und Symfony.

Wenn Sie in Ihrer Anwendung häufig Daten aus Stripe laden, z.B. um Metadaten aus Abos abzufragen, können Sie mit dem eingebauten Symfony Cache eine deutliche Beschleunigung erreichen:

<?php
use Symfony\Contracts\Cache\CacheInterface;
use Symfony\Contracts\Cache\ItemInterface;
use Stripe\Customer;
use App\Entity\User;
//...

public function getStripeDataForUser(User $user, CacheInterface $cache)
{
    return $cache->get('stripedata-' . $user->getId(), function (ItemInterface $item) use ($user) {
        $item->expiresAfter(1800);

        try {
            $data = Customer::retrieve($user->getCustomerId());
            
            // ...
            
            return $data;
        } catch (\Exception $e) {
            // ...
        }
    }
}

So müssen Sie nicht jedes mal eine Anfrage an die Stripe API senden und Ihre Anwendung läuft deutlich schneller.