Yardımcılar ve sabitler
Paketin istemcinin metotları dışında tanımladığı diğer şeyler.
Statik metotlar
| Metot | Nedir |
|---|---|
| OpenEmail::init(), OpenEmail::getClient() | Paylaşılan istemciyi bir kez yapılandırın, ardından ona her yerden ulaşın. init hiç çalışmadıysa getClient() ortamdan bir istemci kurar. |
| OpenEmail::resetClient() | Paylaşılan istemciyi bırakır; böylece bir sonraki getClient() yeni bir istemci kurar. Bir testin vakalar arasında istediği de budur. |
| new OpenEmail(), OpenEmail::createClient() | Ayrı bir istemci. İkisi de belirtmediğiniz her şey için ortamı okur. |
| OpenEmail::createTempMail() | Hiç API anahtarı taşımayan bir tek kullanımlık gelen kutusu istemcisi. |
| OpenEmail::verifyWebhookSignature() | Bir teslimatın imzasını sabit zamanda ve toleranceSeconds: ile değiştirilebilen beş dakikalık bir yeniden oynatma penceresiyle denetler. Çözülmüş olayı döndürür ve herhangi bir başarısızlıkta WebhookSignatureException fırlatır. |
| OpenEmail::toBase64() | Bir dize, bir akış kaynağı, bir SplFileInfo ya da bir PSR-7 akışından ek baytları için Base64. |
| OpenEmail::isApiKey() | Bir değerin oe_live_ ya da oe_test_ biçiminde olup olmadığı. Bir biçim denetimidir, anahtarın hâlâ çalıştığının kanıtı değildir. |
| OpenEmail::isAccessToken() | Bir değerin bir OAuth erişim tokenı biçiminde olup olmadığı: 1 ile 512 karakter arası ve oe_ ile başlamayan. |
| OpenEmail::isSealed() | Bir iletinin gövdesinin şifreli metin olup olmadığı. Gövdeleri açık olarak gelen iki imzalı biçim için false'tur. |
| OpenEmail::resolveLanguage(), OpenEmail::languageByCode(), OpenEmail::isRtlLanguage() | Bir dil seçicinin ihtiyaç duyduğu, paketle birlikte gelen Languages::ALL tablosu üzerindeki aramalar. |
| $client->close() | İstemcinin cURL tanıtıcısını ve arkasındaki bağlantıyı serbest bırakır. Artık başvurulmayan bir istemci, PHP onu serbest bıraktığında aynısını yapar. |
Sabitler
TypeScript SDK'sının dışa aktardığı her değer kümesi, OpenEmail\Constants içinde, her üye için aynı adla bir sabit taşıyan final bir sınıftır; bu yüzden WebhookEvents::EMAIL_DELIVERED değeri email.delivered olur. values() kümenin tamamını döndürür; dışarıdan gelen bir değeri denetlemenin yolu da budur.
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;| Sabit | Ne tutar |
|---|---|
| OpenEmail::VERSION | Paket sürümü. |
| ApiScopes | Kapsam sözlüğü; bir anahtar oluşturma ekranı için. |
| WebhookEvents, WebhookSignatureHeaders | Bir uç noktanın abone olabileceği olaylar ve bir teslimatın taşıdığı başlıkların adları. |
| ErrorTypes | ApiException::$type değerinin aldığı hata sözlüğü. |
| PageLimits | Sayfalanan listelerin çoğunda en büyük ve varsayılan limit: değerleri, MAX_LIMIT ve DEFAULT_LIMIT: 100 ve 25. Birkaç liste daha fazlasını alır ve her metodun başvurusu bunu belirtir. |
| RuleFields, RuleOperators, RuleActions | Bir kuralın koşullarının ve eylemlerinin kurulduğu sözlük. |
| MessageEncryptionFormats | Alım işleminin adlandırabileceği beş zarf. Bunlardan üçü mühürlüdür. |
| CredentialKinds, StepUpMethods, StepUpErrorCodes | me->get ve me->ping çağrılarının hangi kimlik bilgisini tanımladığı, bir doğrulama kodunun nasıl denetlendiği ve bir doğrulamanın hangi kodlarla başarısız olabileceği. |
| ThreadSorts, PeopleSorts, FileSorts ve diğer *Sorts | Bir listenin sıralanabileceği düzenler. |
| FormStatuses, BroadcastStatuses, SuppressionReasons ve diğer kümeler | Bir kaynağın bir alanının alabileceği değerler. Her küme tuttuğu şeye göre adlandırılır. |
| Languages::ALL | Çevrilmiş bir gönderimin ya da önizlemenin kabul ettiği her dil; kodu, adları ve yazım yönüyle birlikte. |
Nesneler
Bir yanıt, çözülmüş JSON'un ilişkisel bir dizi hâlidir. Paket yalnızca yanıtı biçimlendirdiği yerlerde kendi nesnesini oluşturur; her biri OpenEmail\Result içinde bulunur, değiştirilemez ve satırları üzerinde IteratorAggregate ve Countable arayüzlerini uygular.
| Sınıf | Ne taşır |
|---|---|
| Page | Sayfalanan her list çağrısından items, hasMore ve nextCursor. |
| PeoplePage | contacts->listPeople çağrısından aynıları ve ek olarak seen. |
| TempMessagesPage | tempMail->listMessages çağrısından aynıları ve ek olarak expiresAt. |
| AddressBookPage, AddressBook | addresses->list (hasMore ve nextCursor ile) ve addresses->listAll çağrılarından unrestricted, addresses ve domains. |
| BatchResult | emails->sendBatch çağrısından items, sent ve failed. |
| TemplateSends | templates->listSends çağrısından items, total, page ve pageSize. |
| OpenEmail\Http\HttpRequest, OpenEmail\Http\HttpResponse | Bir httpClient: nesnesinin aldığı ve döndürdüğü. var_dump(), print_r() ve json_encode() bir isteğin Authorization başlığını [redacted] olarak gösterir, var_export() ve Symfony'nin dump() işlevi ise olduğu gibi gösterir. |
Paketin fırlattığı her istisna OpenEmail\Exception\OpenEmailException arayüzünü uygular: ApiException ve alt sınıfları, NetworkException, WebhookSignatureException ve API'nin söylediği bir şey için değil, çağrının kendisindeki bir hata için fırlatılan InvalidArgumentException.
Henüz sarmalanmayan bir uç nokta
Bir paket sürümü, sizinle zaten çalışan bir uç nokta arasında asla engel olmamalıdır. $client->raw->request() bir yol ve adlandırılmış argümanlar alır ve istemcinin kimlik bilgisi, temel URL'si, zaman aşımı ve yeniden deneme politikası uygulanmış olarak çözülmüş gövdeyi döndürür.
$result = $client->raw->request( '/labels', method: 'POST', query: ['dryRun' => true], body: ['name' => 'Invoices'], repeatable: true,); var_dump($result);Bir GET diğer her okuma gibi yeniden denenir. Diğer her metot, repeatable: true geçirmediğiniz sürece bir kez gönderilir; bu değer, isteğin iki kez gönderilebileceğine dair sizin beyanınızdır. query: null ya da boş değerleri atlar ve apiKey: diğer her metotta olduğu gibi çalışır.
Bilerek yapmadıkları
- Hiçbir istek gövdesini doğrulamaz. Kuralların tek kopyası sunucunun şemasıdır; burada ikinci bir kopya, birinin iki yıl önce sabitlediği bir sürümde, daha yeni bir sunucunun kabul ettiği bir adresi eninde sonunda reddederdi.
- curl ve json eklentileri dışında çalışma zamanı bağımlılığı yoktur. Bir PSR-18 istemcisi bir seçenektir, asla bir gereklilik değildir.
- Bir yanıtı yalnızca tek bir şekilde yeniden biçimlendirir: bir koleksiyonun
datadizisi zarfından çıkarılarak yukarıdaki nesnelerden birine aktarılır. Diğer her yanıt, API'nin camelCase anahtarlarıyla, API'nin gönderdiği gibi döner.
Paketin eşlik denetimi bunu dürüst tutar. Bir TypeScript metodunun PHP ikizi olmadığında, farklı argümanlar aldığında ya da farklı bir istek gönderdiğinde derlemeyi başarısız kılar.