هذا هو عميل PHP الرسمي لـ Elasticsearch.
قم بتنزيل أحدث إصدار من Elasticsearch أو قم بالتسجيل للحصول على نسخة تجريبية مجانية من Elastic Cloud .
راجع قسم التثبيت في وثائق البدء.
راجع قسم الاتصال في وثائق البدء.
يقدم عميل elasticsearch-php
أكثر من 400 نقطة نهاية للتفاعل مع Elasticsearch. تتوفر قائمة بجميع نقاط النهاية هذه في الوثائق الرسمية لواجهات برمجة تطبيقات Elasticsearch.
لقد أبلغنا هنا عن العملية الأساسية التي يمكنك إجراؤها مع العميل: الفهرسة والبحث والحذف.
تم إصدار هذا العميل وإصداره جنبًا إلى جنب مع خادم Elasticsearch.
لضمان التوافق، استخدم أحدث إصدار من هذه المكتبة ضمن الإصدار الرئيسي لتطبيق Enterprise Search المطابق.
على سبيل المثال، بالنسبة لـ Elasticsearch 7.16
، استخدم 7.16
من هذه المكتبة أو أعلى، ولكن ليس 8.0
.
عميل Elasticsearch متوافق مع إصدارات PHP المحفوظة حاليًا.
عملاء اللغة متوافقون مع الأمام؛ مما يعني أن العملاء يدعمون التواصل مع الإصدارات الثانوية الأكبر أو المساوية من Elasticsearch دون انقطاع. وهذا لا يعني أن العميل يدعم تلقائيًا الميزات الجديدة لإصدارات Elasticsearch الأحدث؛ يكون ذلك ممكنًا فقط بعد إصدار إصدار عميل جديد. على سبيل المثال، لن يدعم إصدار العميل 8.12 تلقائيًا الميزات الجديدة للإصدار 8.13 من Elasticsearch، ويلزم إصدار العميل 8.13 لذلك. عملاء لغة Elasticsearch متوافقون فقط مع التوزيعات الافتراضية وبدون ضمانات.
نسخة البحث المرنة | فرع Elasticsearch-PHP | المدعومة |
---|---|---|
رئيسي | رئيسي | |
8.x | 8.x | 8.x |
7.x | 7.x | 7.17 |
يحتوي الإصدار 8.0.0 من elasticsearch-php
على تطبيق جديد مقارنةً بالإصدار 7.x. وهو يدعم PSR-7 لرسائل HTTP وPSR-18 لاتصالات عميل HTTP.
لقد حاولنا تقليل فواصل BC قدر الإمكان باستخدام 7.x
ولكن هناك بعض الاختلافات (الكبيرة):
ElasticElasticsearch
Exception
باستخدام مساحة الاسم ElasticElasticsearchException
. تعمل جميع الاستثناءات على توسيع واجهة ElasticsearchException
، كما هو الحال في الإصدار 7.xConnectionPool
في NodePool
. كانت تسمية connection
غامضة نظرًا لأن الكائنات عبارة عن عقد (مضيفين)يمكنك إلقاء نظرة على ملف BREAKING_CHANGES لمزيد من المعلومات.
إذا كنت تريد الاستهزاء بعميل Elasticsearch، فأنت تحتاج فقط إلى الاستهزاء بعميل PSR-18 HTTP.
على سبيل المثال، يمكنك استخدام php-http/mock-client كما يلي:
use Elastic Elasticsearch ClientBuilder ;
use Elastic Elasticsearch Response Elasticsearch ;
use Http Mock Client ;
use Nyholm Psr7 Response ;
$ mock = new Client (); // This is the mock client
$ client = ClientBuilder:: create ()
-> setHttpClient ( $ mock )
-> build ();
// This is a PSR-7 response
$ response = new Response (
200 ,
[Elasticsearch:: HEADER_CHECK => Elasticsearch:: PRODUCT_NAME ],
' This is the body! '
);
$ mock -> addResponse ( $ response );
$ result = $ client -> info (); // Just calling an Elasticsearch endpoint
echo $ result -> asString (); // This is the body!
نحن نستخدم ClientBuilder::setHttpClient()
لتعيين العميل الوهمي. يمكنك تحديد الاستجابة التي تريدها باستخدام وظيفة addResponse($response)
. كما ترون فإن $response
هو كائن استجابة PSR-7. في هذا المثال استخدمنا كائن NyholmPsr7Response
من مشروع nyholm/psr7. إذا كنت تستخدم PHPUnit، فيمكنك أيضًا الاستهزاء ResponseInterface
على النحو التالي:
$ response = $ this -> createMock ( ' PsrHttpMessageResponseInterface ' );
ملاحظة : أضفنا رأسًا خاصًا في استجابة HTTP. هذا هو رأس فحص المنتج، وهو مطلوب لضمان اتصال elasticsearch-php
بخادم Elasticsearch 8.0+.
لمزيد من المعلومات، يمكنك قراءة قسم العميل الوهمي في وثائق PHP-HTTP.
إذا كان هناك شيء لا يعمل كما هو متوقع، يرجى فتح قضية.
يمكنك الخروج من منتديات مناقشة المجتمع المرن.
نحن نرحب بالمساهمين في المشروع. قبل أن تبدأ، بعض المعلومات المفيدة...
8.0
فيرجى استخدام الفرع 8.0
، وللإصدار 8.1
استخدم الفرع 8.1
وما إلى ذلك.master
إلا إذا كنت تريد المساهمة في إصدار التطوير للعميل (يمثل الإصدار master
الإصدار الرئيسي التالي).شكرا مقدما على مساهمتك!
معهد ماساتشوستس للتكنولوجيا © مطاطا