التخزين المؤقت.

Learn DXPR BuilderManage the siteNaar productie

صفحة DXPR Builder هي مصفوفة عرض حقل Drupal مع بيانات التخزين المؤقت الخاصة بها، إضافة إلى حفنة من ذاكرات التخزين المؤقت الداخلية التي تحتفظ بها الوحدة للمحرّر والتحقق من الترخيص. تسرد هذه الصفحة ما تخزّنه الشيفرة مؤقتًا، والوسوم والسياقات التي تستخدمها، وما يُبطلها، وما يجب مسحه يدويًا بعد التحديث.

حقل المنشئ

يضبط مُنسِّق حقل DXPR Builder بيانات التخزين المؤقت هذه على كل حقل منشئ:

البيانات الوصفية القيمة الأثر
سياق التخزين المؤقت user.roles:authenticated يحصل الزوار المجهولون والموثَّقون على مدخلات تخزين مؤقت منفصلة.
وسوم التخزين المؤقت وسوم الكيان نفسه، وconfig:dxpr_builder.settings، وconfig:language.entity.<langcode> للغة المعروضة يُبطل حفظ الكيان أو حفظ إعدادات الوحدة أو تغيير إعدادات اللغة الحقل المعروض.
max-age 0 لأي مستخدم موثَّق لا يخزّن Dynamic Page Cache حقول المنشئ أبدًا للمستخدمين المسجلين، لأن مصفوفة العرض تحمل drupalSettings خاصة بالمستخدم (البريد الإلكتروني ورموز CSRF والملف).

بالنسبة للزوار المجهولين يُخزَّن الحقل مؤقتًا بشكل عادي، فيقدّم Internal Page Cache وDynamic Page Cache صفحات المنشئ دون تشغيل شيفرة الوحدة. ويحفظ الحفظ في المنشئ الكيان، فيُبطل Drupal وسوم التخزين المؤقت الخاصة بالكيان كما في أي حفظ آخر.

عند تفعيل المحرّر على الحقل، تضيف الوحدة config:dxpr_builder.settings مجددًا. ومع ضبط مصدر الأصول على السحابة دون تكوين مفتاح منتج، تضبط أيضًا max-age على 0 لتظهر رسالة مفتاح المنتج على كل صفحة.

تُبطل نماذج الإدارة الخاصة بالوحدة config:dxpr_builder.settings صراحة: الإعدادات العامة والذكاء الاصطناعي ونموذج ملف المستخدم ونموذجا قالب الصفحة وقالب المستخدم.

طرق العرض والكتل داخل الصفحة

تُخزَّن الكتل وطرق العرض في HTML المحفوظ كعناصر نائبة az-cms-element فارغة. وعند عرض الحقل، تحمّل الوحدة كل كتلة أو طريقة عرض، وتعرضها بعارض النواة، وتُدرج الناتج في وسوم الحقل. وتُنسخ مكتبات طريقة العرض وdrupalSettings الخاصة بها إلى الحقل؛ وتنتقل بيانات التخزين المؤقت الخاصة بها عبر العارض كما في أي مصفوفة عرض تُبنى أثناء عرض صفحة.

والنتيجة أن صفوف طريقة العرض تبقى داخل الحقل المخزَّن مؤقتًا حتى يُبطَل أحد وسوم التخزين المؤقت الخاصة بطريقة العرض. فتحتفظ طريقة العرض ذات التخزين المؤقت الزمني بالصفوف القديمة طوال مدتها. فإذا رأى الزوار صفوفًا قديمة:

  1. افتحوا طريقة العرض ووسّعوا متقدم واضبطوا التخزين المؤقت على مبني على الوسوم. يوقف لا شيء Dynamic Page Cache، لكن Internal Page Cache ما زال يحتفظ بصفحات كاملة للزوار المجهولين.
  2. احفظوا طريقة العرض. فحفظ أي طريقة عرض يُبطل أيضًا config:view_list، مما يمسح قوائم الوحدة الخاصة بطرق العرض للمحرّر.
  3. امسحوا كل ذاكرات التخزين المؤقت.

في المحرّر، تُجلَب الكتلة أو طريقة العرض التي تضيفونها أو تغيّرونها عبر /dxpr_builder/ajax. ولا تخزّن الوحدة ذلك الرد مؤقتًا.

ذاكرات التخزين المؤقت الداخلية

تعيش كل المدخلات في حاوية التخزين المؤقت الافتراضية (cache.default). وتحمل ذاكرات منتقي العناصر المؤقتة الوسم dxpr_builder:cms_elements إضافة إلى وسوم قوائم أنواع الكيانات التي تسردها، فتمسح نفسها عندما تتغير تلك الكيانات.

معرّف التخزين المؤقت المحتوى يُمسَح بواسطة
dxpr_builder:cms_elements_blocks، dxpr_builder:cms_block_categories قائمة الكتل وفئات الكتل لمنتقي العناصر حفظ أو حذف كتلة محتوى أو نموذج ويب (block_content_list ووسوم قوائم نماذج الويب)، وحذف المدخلات عند إلغاء تثبيت أي وحدة، وdrush cr
dxpr_builder:cms_disallowed_elements:<uid>:<roles hash> الكتل التي لا يجوز للمستخدم الحالي استخدامها الوسوم نفسها إضافة إلى config:user.role.<role> لكل دور من أدوار المستخدم
dxpr_builder:cms_elements_views، dxpr_builder:cms_view_elements_settings، dxpr_builder:cms_views_tags عروض طرق العرض وإعداداتها ومعرّفاتها للمحرّر حفظ أي طريقة عرض أو إضافتها أو حذفها (config:view_list)، وdrush cr
dxpr_builder:button_styles أنماط الأزرار لعنصر الزر الوسم dxpr_builder:cms_elements، وdrush cr
dxpr_builder_license_info نتيجة استدعاء حالة الترخيص تنتهي بعد 24 ساعة عند التفويض، و30 دقيقة في غير ذلك (LICENSE_CHECK_INTERVAL وLICENSE_NOT_AUTHORIZED_INTERVAL)؛ وتُبطَل بعد إرسال الموقع تغيير مستخدم إلى خادم الترخيص
dxpr_builder_license_users قائمة المحرّرين من خادم الترخيص تنتهي بعد 24 ساعة؛ وتُبطَل بعد إرسال الموقع تغيير مستخدم إلى خادم الترخيص
dxpr_builder_blacklisted نتيجة قائمة حظر النطاقات تنتهي بعد ساعة، أو دقيقة واحدة بينما النطاق محظور
dxpr_builder:jwt_decoded:<sha256 of the key> مفتاح المنتج مفكوك الترميز، مدخل لكل مفتاح الوسم config:dxpr_builder.settings

تأتي فئات الأدوات الخاصة بالقالب (dxpr_builder_classes في ملف .info.yml الخاص بالقالب) من معلومات القالب المخزنة مؤقتًا في Drupal، فيحتاج التغيير إلى drush cr قبل أن يراه المحرّر. وتُقرأ ملفات مجموعات الأيقونات (*.dxpr_icon_sets.yml) عند كل تحميل لصفحة المحرّر، لكن المكتبة التي تُسمّيها تحتاج إلى drush cr كأي مكتبة جديدة.

الأصول والتجميع

نصوص المحرّر الستة إما خارجية (السحابة) أو مُعلنة مع preprocess: FALSE، فلا يمسّها التجميع أبدًا. وينطبق التجميع على مكتبات المساعدة الخاصة بالمحرّر، مثل dxpr_builder/editor.core مع Sortable، وعلى الملفات الموجهة للزوار (dxpr_builder/core وdxpr_builder/editor.frontend ومكتبات elements.* وbootstrap_5). ويعود عرَضان إلى ذاكرة التجميع المؤقتة:

ما يجب مسحه بعد التحديث

  1. شغّلوا تحديثات قاعدة البيانات، ثم امسحوا ذاكرات التخزين المؤقت:

    drush updb -y
    drush cr
    

    drush cr يعيد بناء تعريفات مكتبات المنشئ التي تتبع إصدار الوحدة ومصدر الأصول، وملفات الأصول المجمّعة، وذاكرات التخزين المؤقت الداخلية أعلاه.

  2. افتحوا صفحة منشئ واحدة كمحرّر واحفظوها. فيكتب ذلك الصفحة بوسوم الإصدار الحالي ويُبطل وسوم كيانها.

  3. خلف Varnish أو CDN، طهّروا صفحات المنشئ أو انتظروا انقضاء العمر الأقصى؛ فالوحدة لا ترسل طلبات تطهير.

إذا ظلّت صفحة تعرض محتوى قديمًا للزوار، انظر مشاكل بعد التحديث.

ما الخطوة التالية؟