اجعل مخطط النموذج مرجعًا ملزمًا بالوضع الصارم
الوضع الصارم مطفأ افتراضيًا، فيكتفي المخطط بتوجيه التوليد بدل محاسبة الإجابات. فعّله لنموذج واحد فيصبح الحقل غير المعلَن رفضًا، مع بقاء حقول الملفات ملزمة في الحالتين.
تُرجم هذا المقال آليًا. اقرأ النص الأصلي بالإنجليزية

الوضع الصارم مفتاح على نموذج واحد، وهو مطفأ عند إنشاء النموذج. وليس إطفاؤه سهوًا: فمعظم النماذج تبدأ هناك، لأن نموذجًا لم يستقبل إرسالًا قط لا يعرف بنيته بعد. وما يغيّره المفتاح هو لمن يكون المخطط.
ما الذي يتغير حين تشغّله
حين يكون الوضع الصارم مطفأً، يوجّه المخطط التوليد. فهو يحدد الحقول التي تعاينها لوحة الإنشاء وما يرسمه المكوّن المولَّد، وعليه يتعلّم FormFlow حين يعرض اعتماد حقل رآه يصل. لكنه لا يحاسب الإجابات. المفتاح الزائد ليس خرقًا: بل يصل إجابةً.
وحين يكون مفتوحًا، يصبح المخطط عقدًا في الاتجاهين. الحقل المعلَن الذي لا يصل، أو لا يستوفي قواعده، يُرفض. والمفتاح غير المعلَن الذي يصل يُرفض أيضًا — البوابة نفسها، والخطأ نفسه مربوطًا بالحقل، مع رسالة تقول إن الحقل لم يُعلَن. وهذا التماثل هو المقصود كله: فالنموذج الصارم لا يستطيع أن يجمع بصمت إجابات لم يطلبها. وقد جاء الوضع الصارم مع v1.0.0، ويصف مرجع API الرفض الذي يعيده.
قواعد الحقول تأتي من مفردات مغلقة
الوضع الصارم هو أيضًا الوضع الوحيد الذي تُطبَّق فيه قواعد الحقول. قاعدة الحقل قيد إضافي على حقل واحد، فوق ما يقتضيه نوعه، وتُختار من قائمة يقدّمها FormFlow ويحصرها في ذلك النوع. أنت تختار من القائمة، ولا تكتب قاعدة أبدًا. فلا يستطيع نموذج أن يطلب من FormFlow تشغيل فحص لم يكتبه FormFlow.
نوع الحقل | القواعد المتاحة | الحدود |
|---|---|---|
نص | حروف فقط؛ حروف وأرقام؛ حروف وأرقام وشرطات وشرطات سفلية؛ ASCII بسيط؛ أحرف صغيرة؛ أحرف كبيرة؛ UUID؛ ULID؛ عنوان IP؛ عنوان MAC؛ لون سداسي | أدنى وأقصى طول |
منطقة نص | ASCII بسيط؛ JSON صالح | أدنى وأقصى طول |
رقم | عدد صحيح | أدنى وأقصى قيمة |
بريد إلكتروني، هاتف | لا شيء | أدنى وأقصى طول |
قائمة اختيار، اختيار فردي | لا شيء | لا شيء |
أمران في هذا الجدول. الحد عدد صحيح حتى ستة أرقام. والنوع ذو قائمة الخيارات لا يقبل قواعد إطلاقًا: فقائمة خياراته هي القيد أصلًا، والوضع الصارم يحكم على كل إجابة مقابلها.
حيث لا يكون الوضع الصارم خيارك
حقل الملفات المعلَن ملزم في كل نموذج، صارمًا كان أو لا. ويُحكم عليه في النوع والحجم والعدد في كل مرة، ويرفض رفضًا صارمًا. وهذا مقصود: فالرفع بايتات على القرص، فلا يمكن تركه لإعداد مطفأ افتراضيًا. والاستثناء الآخر هو النموذج المصحَّح: فالنموذج الذي له مفتاح إجابات يكون دائمًا في الوضع الصارم، ولا يكون إلا صفحة مستضافة، لأن نسخة HTML المضمَّنة لا تستطيع عرضه أو تصحيحه بإنصاف.
اقرر بالدليل لا بالقلق
قبل أن تشغّله، أعد تشغيل الإعداد المرشَّح على سجل النموذج نفسه. يحتفظ FormFlow بالإرسالات التي قبلها النموذج وبالإرسالات المرفوضة التي ردّها، فيمكن للإعادة أن تُظهر كلفة التغيير قبل أن يدفعها أحد. ولهذا يمكن تشغيل الوضع الصارم متأخرًا، بعد أن يكون للنموذج حركة.
والسبب الآخر للطمأنينة: الرفض ليس خسارة خفية. فالإرسال المرفوض يُحفظ كسجل يمكنك التصرف بشأنه، ولا يُسلَّم، ولا يصبح إرسالًا محسوبًا، ويمكن استرداده متى أُصلح الإعداد. الوضع الصارم يرفع كلفة الخطأ في المخطط؛ لكنه لا يجعله دائمًا.
حدود تستحق المعرفة
مطفأ افتراضيًا. إن لم تتذكر تشغيله فهو مطفأ.
إنه يحكم على الإجابات فقط. أما قائمة المصادر المسموحة وبنية الطلب فيُحكمان في كل نموذج، صارمًا كان أو لا.
حقول الملفات المعلَنة تُحكم في الحالتين، فاختبار وضع صارم ينجح بلا رفع لا يثبت شيئًا عن الملف.
قواعد الحقول تُطبَّق في الوضع الصارم وحده. وإخراج نموذج من الوضع الصارم يوقف بصمت تطبيق كل قاعدة اخترتها له.
النموذج المصحَّح لا يخرج من الوضع الصارم ولا يُضمَّن، فخطّط مخططه قبل أول إرسال.