نصب
یک بستهٔ Composer، PHP 8.2 به بالا، با افزونههای curl و json.
نصب
انتشار کنونی 0.0.1 است. برای هر متد SDK TypeScript یک متد با همان نام دارد، و بررسی همخوانیِ بسته وقتی یکی غایب باشد یا درخواست متفاوتی بفرستد بیلد را میشکند.
composer require openemail/sdk<?php use OpenEmail\OpenEmail; require __DIR__ . '/vendor/autoload.php'; $client = new OpenEmail(); $email = $client->emails->send([ 'from' => 'Acme Billing <[email protected]>', 'to' => '[email protected]', 'subject' => 'Your September invoice', 'html' => '<p>Invoice attached.</p>',]); echo $email['id'], ' ', $email['status'], PHP_EOL;new OpenEmail() کلید را از OPENEMAIL_API_KEY میخواند، پس کد هیچ اعتبارنامهای در خود ندارد. اگر پیکربندیتان جای دیگری است، apiKey: را بدهید. برای دسترسی به یک کلاینت از هر جا، آن را یک بار با OpenEmail::init() پیکربندی کنید و با OpenEmail::getClient() بگیرید.
پاسخ همان JSON تجزیهشده به شکل یک آرایهٔ انجمنی است، پس $email['id'] شناسه را میخواند. کلیدها نامهای API را نگه میدارند، و متدها و آرگومانهای نامدارشان هم همینطور، و به همین دلیل scheduledAt و idempotencyKey: اینجا همانگونه نوشته میشوند که در مرجع API.
بازگشتن send به این معنا نیست که پیام رفته است. یک ارسال زمانبندیشده یا لغوپذیر با queued یا scheduled برمیگردد و بعداً تعیین تکلیف میشود. status را بخوانید، نه این واقعیت را که فراخوانی بازگشت.
کجا اجرا میشود
PHP 8.2 به بالا، با افزونههای curl و json که تقریباً همهٔ بیلدها همراه دارند، و بدون هیچ وابستگی دیگری. درخواستها برای هر کلاینت از یک هندل cURL میگذرند، پس درخواست دوم به API از اتصالی که درخواست نخست باز کرده دوباره استفاده میکند، و cURL پاسخ فشرده را برایتان باز میکند.
زیر PHP-FPM، Apache، خط فرمان و workerهای طولانیمدت مانند یک worker صف، RoadRunner یا FrankenPHP کار میکند. زیر PHP-FPM هر درخواست از نو شروع میشود، پس کلاینت را برای هر درخواست یک بار بسازید. در یک فرایند طولانیمدت، یکی را در تمام عمر فرایند نگه دارید. پس از pcntl_fork، فرایند فرزند اتصال خودش را باز میکند و از اتصال والد دوباره استفاده نمیکند.
کلاینت یک کلید API فضای کاری را با خود دارد که میتواند ایمیل بفرستد و صندوق پستی را بخواند، پس جایش روی سرور، در یک کار پسزمینه یا در ابزاری است که روی دستگاه خودتان اجرا میشود. کلید را در یک متغیر محیطی یا مخزن رازهای فریمورکتان نگه دارید، هرگز در کد.