بحث
جربه
حقل واحد، كل نوع من النتائج. أسماء الصفحات تأتي من الموجه ولا تحتاج إلى إعلان؛ السجلات تأتي من الكيانات التي تحمل السمة أدناه. كل نتيجة تحمل وجهتها، لذا لا يتعين على الشريط اتخاذ قرار بشأن ما يعنيه النقر.
المزودون
المزود هو عائلة واحدة من الأشياء القابلة للاكتشاف. تنفيذ الواجهة هو التسجيل الكامل - التكوين التلقائي يحدد ذلك، لذا فإن المزود المكتوب في تطبيق ينضم إلى البحث بوجوده. هؤلاء هم الذين يجيبون هنا، بالاسم الذي تقتصر عليه الاستعلام.
-
entity
Wexample\SymfonySearch\Class\Provider\EntitySearchProvider
-
route
Wexample\SymfonySearch\Class\Provider\RouteSearchProvider
class CommandSearchProvider extends AbstractSearchProvider
{
public function provide(SearchQuery $query): iterable
{
// yield $this->createResult($reference, $title)->setScore($score);
}
}
الكيانات القابلة للبحث
الفئة تقول إن الكيان قابل للاكتشاف؛ خصائصه تشير إلى ما، كل منها بنوعه - العنوان يُقرأ، المبلغ هو رقم، العنوان كامل أو لا شيء - والنوع يحدد كل من SQL والنقاط. ستة من سبع وظائف تسجيل الدرجات في التراث كانت تلك القائمة متخفية. السابع كان منطقيًا، وتلك تسمي فئة تسجيل الدرجات؛ الكيان الذي تعتمد إجابته على من يسأل يضيف provider: true ويحصل على مزود خاص به.
-
contact
Wexample\SymfonyOrganization\Entity\Contact
الحقول : name (text), email (email) -
demo_message
Wexample\SymfonyDesignSystemDemo\Entity\DemoMessage
الحقول : body (text, 5) -
demo_room
Wexample\SymfonyDesignSystemDemo\Entity\DemoRoom
الحقول : name (text) -
demo_user
Wexample\SymfonyUserDemo\Entity\DemoUser
الحقول : email (email), username (text), firstName (text), lastName (text) -
organization
Wexample\SymfonyOrganization\Entity\Organization
الحقول : name (text), vatNumber (text), legalIdentifier (text), email (email)
#[ORM\Entity]
#[Searchable(route: 'app_invoice_show')]
class Invoice extends AbstractEntity
{
#[SearchText]
protected string $label;
#[SearchAmount(points: 40)]
protected float $priceTotal;
}
واجهة برمجة التطبيقات
النتيجة هي كيان، لذا فإن نقطة النهاية الخاصة بها هي مجموعة ذلك الكيان ولا شيء آخر. مستودع TypeScript الناتج عن نفس فئة PHP يناديها دون أن يُقال له أين هي - وهو ما يستخدمه الحقل أعلاه.
معلمات الاستعلام
- search
ما الذي يتم البحث عنه. الاستعلام الفارغ لا يجيب على شيء بدلاً من كل شيء.
- context
من أين يتم إجراء البحث، مما يحدد ما يمكن أن يجيب عليه. السياقات المشحونة : default, header, form_field
- type
يقتصر الجواب على نوع واحد - اسم كيان، أو مفتاح مزود.
- length
عدد النتائج. في حالة الغياب، يحدد تكوين الحزمة.
curl "/api/search-result/list?search=dupont&context=header&length=5"
الترجمات
يقرأ الشريط تسمياته الخاصة من الوجوه الأربعة للمكون، لذا فإن عنصر النائب لا يُكتب أبدًا في العلامات. من ناحية أخرى، تأتي عناوين النتائج من السجل نفسه أو من اسم المسار - ترجمة تلك لم يتم توصيلها بعد، وتظهر الصفحة حاليًا اسم مسارها بشكل إنساني.
# assets/components/search-bar.fr.yml
placeholder: Rechercher...
empty: Aucun résultat.
pending: Recherche en cours...