رفتن به متن راهنما
همه‌ی راهنماها

نصب

با Composer از Packagist، Reqtide را به پروژهٔ PHP خود اضافه کنید، یا مثال‌ها را بدون نصب PHP و فقط با Docker اجرا کنید.

برنامه Reqtide PHP 0.1.0آخرین بررسی زمان خواندن 4 دقیقه

در این صفحه

نسخهٔ 0.1.0 Reqtide بتا است: API ممکن است بین نسخه‌های فرعی تغییر کند و هر تغییر در changelog ثبت می‌شود. سه بسته با یک شمارهٔ نسخه منتشر می‌شوند. آن‌ها را با Composer از Packagist نصب کنید:

Bash
composer require enaxon/reqtide
composer require enaxon/reqtide-redis    # state shared by several PHP processes
composer require enaxon/reqtide-guzzle   # protections around Guzzle requests

هر افزونه دقیقاً همان نسخهٔ enaxon/reqtide را لازم دارد. ادامهٔ این راهنما نصب از روی clone را توضیح می‌دهد که برای مشارکت‌کنندگان است.

امروز چه چیزی کار می‌کند

راهوضعیتتوضیح
مخزن مسیر Composer، از روی cloneکار می‌کنددر 2026-10-11 با Composer 2 روی PHP 8.3 در Docker بررسی شد. روشی که در ادامه آمده همین است.
مخزن VCS در Composer (مستقیم از GitHub)بررسی نشدهاز مخزن مسیر استفاده کنید.
نصب از Packagistکار می‌کنددر 2026-10-15 با Composer 2.8.12 روی PHP 8.3.35 و 8.4.26 و 8.5.11 در Docker بررسی شد: سه بسته در نسخهٔ 0.1.0 در یک پوشهٔ خالی از Packagist نصب می‌شوند، با --prefer-lowest هم.
نسخه‌های PHP 8.3 و 8.4 و 8.5در Docker بررسی شدهفقط خط فرمان.
اجرا زیر PHP-FPM، Apache و وب‌سرورهای دیگربرای PHP-FPM سه lane در CI (PHP 8.3 و 8.4 و 8.5، nginx، شش worker). برای بقیه: اجرا نشدهحالت داخل یک پردازهٔ PHP می‌ماند. پیش از استفاده از Reqtide در درخواست وب، محدودیت‌های Reqtide را بخوانید.
راه‌های نصب و وضعیت هر کدام.

پیش‌نیازها

  • نسخهٔ 8.3 یا بالاتر PHP، در ساخت 64 بیتی.
  • نسخهٔ 2 از Composer.
  • هستهٔ کتابخانه بستهٔ دیگری لازم ندارد. فایل composer.json آن فقط php و php-64bit را می‌خواهد.

دو بستهٔ افزودنی چیزهای بیشتری می‌خواهند. بستهٔ enaxon/reqtide-redis به ext-openssl و Predis 3.7 نیاز دارد. بستهٔ enaxon/reqtide-guzzle به ext-curl و Guzzle 7.15.5 یا بالاتر نیاز دارد.

نصب از روی clone

گام 1: مخزن را کلون کنید

آن را کنار پروژهٔ خود کلون کنید:

Bash
git clone https://github.com/ehsanenaloo/reqtide.git

گام 2: clone را به‌عنوان مخزن مسیر ثبت کنید

مخزن‌ها را به composer.json پروژهٔ خود اضافه کنید. هسته در ریشهٔ clone است. بسته‌های Redis و Guzzle در packages/redis و packages/guzzle هستند. گزینهٔ symlink را false بگذارید تا Composer هر بسته را داخل vendor/ کپی کند.

JSON
{
    "repositories": [
        { "type": "path", "url": "../reqtide", "options": { "symlink": false } },
        { "type": "path", "url": "../reqtide/packages/redis", "options": { "symlink": false } },
        { "type": "path", "url": "../reqtide/packages/guzzle", "options": { "symlink": false } }
    ]
}

برای هسته فقط خط اول لازم است. خط دوم و سوم را وقتی اضافه کنید که بستهٔ Redis یا Guzzle را می‌خواهید.

گام 3: بسته‌ها را require کنید

Bash
composer require "enaxon/reqtide:@dev" "enaxon/reqtide-redis:@dev" "enaxon/reqtide-guzzle:@dev"

بسته‌هایی را که لازم ندارید حذف کنید. بسته‌های افزودنی به همان نسخهٔ هسته نیاز دارند، پس آن‌ها را با هم نصب کنید.

نام فروشنده (vendor) enaxon است. فروشندهٔ دیگری در Packagist به نام naxon فقط یک حرف با آن فاصله دارد. نام بسته را دقیق کپی کنید.

بستهٔ اصلی enaxon/reqtide خود کتابخانه (Enaxon\Reqtide) و ابزارهای آزمون (Enaxon\Reqtide\Testing) را دارد. این ابزارها فقط برای آزمون‌اند. آزمون با ساعت مجازی را ببینید.

بدون نصب PHP امتحان کنید

با Docker می‌توانید مثال‌ها را داخل clone اجرا کنید. روی دستگاه خود به PHP یا Composer نیازی ندارید:

Bash
cd reqtide
docker compose -f tools/docker/compose.yaml run --rm php83 composer install
docker compose -f tools/docker/compose.yaml run --rm php83 php examples/06-getting-started.php

خروجی این است:

Text
ok on attempt 3
invocations: 3

برای امتحان نسخه‌های دیگر PHP، به‌جای php83 از php84 یا php85 استفاده کنید.

بررسی کنید که کار می‌کند

در پروژهٔ خود فایل demo.php را با اسکریپت شروع به کار بسازید و اجرا کنید:

Bash
php demo.php

باید همان دو خط بالا را ببینید. اگر PHP می‌گوید کلاس Enaxon\Reqtide\Pipeline\PipelineBuilder پیدا نشد، خط autoloader در کد نیست یا به پوشهٔ vendor/ اشتباه اشاره می‌کند. اگر Composer بستهٔ enaxon/reqtide را پیدا نمی‌کند، مقدار url در مخزن مسیر را بررسی کنید.

گام بعدی

شروع به کار اولین پایپ‌لاین شما را می‌سازد. محدودیت‌های Reqtide می‌گوید نسخهٔ 0.x چه کارهایی را انجام نمی‌دهد.