Aller à la documentation
PHP

Journal des versions

Toutes les versions du paquet, de la plus récente à la plus ancienne.

0.0.1

La première version. Elle couvre tout le SDK TypeScript tel qu'il était au moment de cette version : 430 méthodes dans 41 espaces de noms, chacune sous son nom TypeScript, et chacune envoie, octet pour octet, la requête qu'envoie sa jumelle TypeScript.

  • OpenEmail\OpenEmail a une propriété pour chaque espace de noms, de emails, threads et templates jusqu'à providerImports, dnsConnections et account, et les méthodes de chacun gardent leurs noms TypeScript.
  • Un corps de requête est un tableau associatif dont les clés gardent les noms en camelCase de l'API, et les options sont des arguments nommés comme idempotencyKey: et apiKey:. Une réponse revient sous forme du tableau associatif décodé.
  • Chaque ressource paginée a list, qui renvoie une Page, listAll, qui renvoie tous les éléments dans un tableau, et iterate, qui renvoie un Generator qui ne récupère la page suivante qu'une fois arrivé à elle. PeoplePage, TempMessagesPage, AddressBookPage, AddressBook, BatchResult et TemplateSends portent les réponses qui contiennent plus qu'une liste.
  • Un refus de l'API lève ApiException ou sa sous-classe pour le type d'erreur, avec status, type, errorCode, param, docUrl, requestId, retryAfterSeconds, fields et body, et des méthodes comme isValidation() et isStepUpRequired(). L'absence totale de réponse lève NetworkException, avec isTimeout() quand le délai est dépassé. Une erreur dans l'appel lui-même lève InvalidArgumentException avant que rien ne soit envoyé. Toutes implémentent OpenEmailException.
  • new OpenEmail() et OpenEmail::createClient() lisent OPENEMAIL_API_KEY, OPENEMAIL_ACCESS_TOKEN et OPENEMAIL_BASE_URL pour tout ce que vous omettez, et OpenEmail::init(), OpenEmail::getClient() et OpenEmail::resetClient() gèrent un client partagé. OpenEmail::createTempMail() ouvre des boîtes jetables sans identifiant.
  • accessToken: prend un jeton d'accès OAuth, ou un callable qui en renvoie un, appelé avant chaque requête. Chaque méthode prend apiKey: pour agir avec une autre clé le temps d'un appel, et les méthodes tempMail prennent inboxToken:. Chaque paramètre qui porte un identifiant est marqué #[\SensitiveParameter].
  • OpenEmail::verifyWebhookSignature() vérifie une livraison en temps constant, refuse celle qui date de plus de cinq minutes et renvoie l'événement décodé. Elle lit la signature dans un tableau d'en-têtes quelle que soit la casse, dans $_SERVER, dans un header bag Symfony ou Laravel, ou dans une requête PSR-7.
  • OpenEmail::toBase64(), isApiKey(), isAccessToken(), isSealed(), resolveLanguage(), languageByCode() et isRtlLanguage() sont les utilitaires du SDK TypeScript, et chaque ensemble de valeurs qu'exporte la racine de son paquet est une classe dans OpenEmail\Constants.
  • Elle nécessite PHP 8.2 ou plus récent avec les extensions curl et json, et rien d'autre. Les requêtes passent par un handle cURL par client, qui garde sa connexion ouverte entre les requêtes et en ouvre une nouvelle après pcntl_fork, et timeout: borne une tentative entière. Psr18HttpClient les envoie à la place via Guzzle, Symfony HttpClient ou tout autre client PSR-18.
  • Les lectures, les envois et chaque écriture qu'on peut répéter sans risque sont réessayés sur 408, 500, 502, 503 et 504 avec un backoff, et sur un 429 seulement quand son Retry-After est d'une minute ou moins. Chaque envoi porte une clé d'idempotence que ses réessais réutilisent.
  • Le client refuse d'envoyer un identifiant en http: simple vers autre chose que cette machine, refuse une URL de base sur 0.0.0.0, refuse un en-tête qui scinderait une requête, et ne laisse jamais raw->request() sortir de l'origine de l'URL de base.