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.