Kalo te dokumentacioni
PHP

Ndihmësit dhe konstantet

Çfarë tjetër përcakton paketa përveç metodave të klientit.

Metodat statike

MetodaÇfarë është
OpenEmail::init(), OpenEmail::getClient()Konfiguroni klientin e përbashkët një herë, pastaj arrijeni nga kudo. getClient() ndërton një të tillë nga mjedisi nëse init nuk u ekzekutua kurrë.
OpenEmail::resetClient()Heq klientin e përbashkët, ndaj getClient() i radhës ndërton një të ri, që është ajo që do një test midis rasteve.
new OpenEmail(), OpenEmail::createClient()Një klient më vete. Të dy e lexojnë mjedisin për çdo gjë që lini jashtë.
OpenEmail::createTempMail()Një klient për kutitë e përkohshme që nuk mbart çelës API.
OpenEmail::verifyWebhookSignature()Kontrollon nënshkrimin e një dërgese në kohë konstante, me një dritare pesëminutëshe kundër riluajtjes që e ndryshon toleranceSeconds:. Kthen ngjarjen e dekoduar, dhe hedh WebhookSignatureException në çdo dështim.
OpenEmail::toBase64()Base64 për bajtet e bashkëngjitjeve, nga një string, një burim stream-i, një SplFileInfo ose një stream PSR-7.
OpenEmail::isApiKey()Nëse një vlerë ka formën oe_live_ ose oe_test_. Një kontroll i formës, jo provë se çelësi funksionon ende.
OpenEmail::isAccessToken()Nëse një vlerë ka formën e një token-i aksesi OAuth: 1 deri në 512 karaktere, pa nisur me oe_.
OpenEmail::isSealed()Nëse trupi i një mesazhi është tekst i shifruar. Është false për dy formatet e nënshkruara, trupat e të cilave mbërritën të hapur.
OpenEmail::resolveLanguage(), OpenEmail::languageByCode(), OpenEmail::isRtlLanguage()Kërkimet që i duhen një zgjedhësi gjuhe, mbi tabelën e përfshirë Languages::ALL.
$client->close()Liron handle-in cURL të klientit dhe lidhjen pas tij. Një klient që nuk referohet më bën të njëjtën gjë kur PHP e liron.

Konstantet

Çdo bashkësi vlerash që eksporton SDK-ja TypeScript është një klasë final te OpenEmail\Constants, me një konstante për çdo anëtar me të njëjtat emra, ndaj WebhookEvents::EMAIL_DELIVERED është email.delivered. values() kthen gjithë bashkësinë, dhe kështu kontrollohet edhe një vlerë që erdhi nga jashtë.

constants.php
use OpenEmail\Constants\ApiScopes;use OpenEmail\Constants\PageLimits;use OpenEmail\Constants\WebhookEvents; $events = WebhookEvents::values(); $scopes = [ApiScopes::EMAILS_SEND, ApiScopes::THREADS_READ]; $known = in_array('email.delivered', $events, true); echo count($events), ' ', implode(',', $scopes), ' ', PageLimits::MAX_LIMIT, ' ', $known ? 'known' : 'unknown', PHP_EOL;
KonstantjaÇfarë mban
OpenEmail::VERSIONVersioni i paketës.
ApiScopesFjalori i scope-ve, për një ekran krijimi çelësash.
WebhookEvents, WebhookSignatureHeadersNgjarjet te të cilat mund të abonohet një endpoint dhe emrat e header-ave që mbart një dërgesë.
ErrorTypesFjalori i gabimeve që merr ApiException::$type.
PageLimitslimit: më i madh dhe ai i parazgjedhur në shumicën e listave të faqosura, MAX_LIMIT dhe DEFAULT_LIMIT: 100 dhe 25. Disa lista pranojnë më shumë, dhe referenca e secilës metodë e thotë këtë.
RuleFields, RuleOperators, RuleActionsFjalori nga i cili ndërtohen kushtet dhe veprimet e një rregulli.
MessageEncryptionFormatsPesë zarfet që mund të emërtojë përpunimi i postës hyrëse. Tre prej tyre janë të vulosur.
CredentialKinds, StepUpMethods, StepUpErrorCodesCilin kredencial përshkruajnë me->get dhe me->ping, si kontrollohet një kod verifikimi, dhe kodet me të cilat mund të dështojë një verifikim.
ThreadSorts, PeopleSorts, FileSorts dhe *Sorts të tjeraRenditjet sipas të cilave mund të renditet një listë.
FormStatuses, BroadcastStatuses, SuppressionReasons dhe bashkësitë e tjeraVlerat që mund të marrë një fushë e një burimi. Çdo bashkësi emërtohet sipas asaj që mban.
Languages::ALLÇdo gjuhë që pranon një dërgim ose një parapamje e përkthyer, me kodin, emrat dhe drejtimin e saj.

Objektet

Një përgjigje është JSON-i i dekoduar si array asociativ. Paketa ndërton një objekt të vetin vetëm aty ku i jep formë përgjigjes, dhe secili ndodhet te OpenEmail\Result, është i pandryshueshëm, dhe është IteratorAggregate e Countable mbi rreshtat e tij.

KlasaÇfarë mbart
Pageitems, hasMore dhe nextCursor, nga çdo list i faqosur.
PeoplePageTë njëjtat plus seen, nga contacts->listPeople.
TempMessagesPageTë njëjtat plus expiresAt, nga tempMail->listMessages.
AddressBookPage, AddressBookunrestricted, addresses dhe domains, nga addresses->list (me hasMore dhe nextCursor) dhe addresses->listAll.
BatchResultitems, sent dhe failed, nga emails->sendBatch.
TemplateSendsitems, total, page dhe pageSize, nga templates->listSends.
OpenEmail\Http\HttpRequest, OpenEmail\Http\HttpResponseÇfarë merr dhe kthen një httpClient:. var_dump(), print_r() dhe json_encode() e shfaqin header-in Authorization të një kërkese si [redacted], ndërsa var_export() dhe dump() i Symfony-t e shfaqin ashtu siç është.

Çdo përjashtim që hedh paketa implementon OpenEmail\Exception\OpenEmailException: ApiException dhe nënklasat e tij, NetworkException, WebhookSignatureException dhe InvalidArgumentException, i cili hidhet për një gabim në vetë thirrjen dhe jo për diçka që tha API-ja.

Një endpoint që kjo ende nuk e mbështjell

Një version i ri i paketës nuk duhet të jetë kurrë ajo që qëndron mes jush dhe një endpoint-i që funksionon tashmë. $client->raw->request() merr një shteg dhe argumente me emër dhe kthen trupin e dekoduar, me kredencialin, URL-në bazë, kohën maksimale dhe politikën e riprovimeve të klientit të zbatuara.

escape_hatch.php
$result = $client->raw->request(    '/labels',    method: 'POST',    query: ['dryRun' => true],    body: ['name' => 'Invoices'],    repeatable: true,); var_dump($result);

Një GET riprovohet si çdo lexim tjetër. Çdo metodë tjetër dërgohet një herë, veç nëse jepni repeatable: true, që është pohimi juaj se mund të dërgohet dy herë. query: i anashkalon vlerat që janë null ose bosh, dhe apiKey: funksionon si në çdo metodë tjetër.

Çfarë nuk bën me qëllim

  • Nuk validon asnjë trup kërkese. Skema e serverit është kopja e vetme e rregullave, dhe një kopje e dytë këtu do të refuzonte herët a vonë një adresë që një server më i ri e pranon, në një version që dikush e fiksoi dy vjet më parë.
  • Nuk ka varësi në kohën e ekzekutimit përtej zgjerimeve curl dhe json. Një klient PSR-18 është një mundësi, kurrë një kërkesë e detyrueshme.
  • E riformëson një përgjigje vetëm në një mënyrë: array-i data i një koleksioni nxirret nga zarfi i tij në njërin nga objektet më lart. Çdo përgjigje tjetër kthehet ashtu siç e dërgoi API-ja, me çelësat camelCase të API-së.

Kontrolli i barazisë së paketës e mban këtë të ndershëm. Ai e dështon build-in kur një metodë TypeScript nuk ka binjak PHP, merr argumente të ndryshme ose dërgon një kërkesë tjetër.