إدراج Partials باستخدام template وinclude
لماذا ينسّق include مع Pipelines بينما لا يفعل template ذلك
إدراج Partials باستخدام template وinclude درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
استدعاء قالب جزئي
لا يفعل القالب الجزئي المعرّف شيئًا حتى تستدعوه. ويوفر Helm إجراءين لهذا الغرض: template وinclude.
إجراء template
يُصيّر إجراء template قالبًا جزئيًا مُسمّى في موضعه. وتمرّرون إليه اسم القالب الجزئي وكائن نطاق ليتمكن من قراءته.
{{ template "mychart.labels" . }}لماذا إمكانات template محدودة؟
إجراء template عبارة عن تعليمة، وليس تعبيرًا. وتذهب مخرجاته مباشرةً إلى المستند، ولا يمكن تمريرها عبر pipe إلى دوال أخرى.
التعرّف إلى include
يضيف Helm دالة include لسد هذه الفجوة. فهي تُصيّر القوالب الجزئية نفسها، لكنها تعيد النتيجة كسلسلة نصية يمكنكم تحويلها.
{{ include "mychart.labels" . }}يتكامل include مع خطوط الأنابيب
بما أن include تعيد قيمة، يمكنكم تمريرها عبر pipe إلى دوال مثل indent أو nindent. ولهذا تفضّل معظم charts استخدام include.
{{ include "mychart.labels" . | indent 4 }}المسافات البادئة هي السبب الحقيقي
يجب أن تصل YAML المُدرجة إلى مستوى المسافة البادئة الصحيح. ولا يمكن تمرير سوى include عبر pipe إلى nindent، ولذلك تنتج مخرجات متداخلة بصورة صحيحة في كل مرة.
metadata:
labels:
{{- include "mychart.labels" . | nindent 4 }}وسيط النطاق
النقطة الموجودة بعد اسم القالب الجزئي هي النطاق الذي تسلّمونه إليه. ويتيح تمرير النقطة الجذرية للقالب الجزئي قراءة .Values و.Release.
{{ include "mychart.fullname" . }}مساعدة تبني اسمًا
يعيد قالب جزئي هنا اسمًا، ويستخدم Deployment الدالة include لإدراجه في metadata. مصدر واحد للحقيقة وعدة مستدعين.
metadata:
name: {{ include "mychart.fullname" . }}لـ template استخداماته
ما زلتم ترون template مستخدمًا في تطبيقات فعلية، وغالبًا مع القوالب الجزئية التي تُصدر كتلة كاملة في سطرها الخاص، حيث لا تكون هناك حاجة إلى تمريرها عبر pipe.
{{ template "mychart.notes" . }}قاعدة عامة
إذا كان الإخراج يحتاج إلى محاذاة بمسافة بادئة أو إلى أي معالجة لاحقة، فاستخدم include. ولا تستخدم إجراء القالب العادي إلا عندما تكون متأكدًا من أنك لا تحتاج إلى ذلك حقًا.
صيّر للتحقق
شغّل helm template . وتحقق من أن القالب الجزئي قد توسّع بالمسافة البادئة المتوقعة. تُعدّ محاذاة YAML بشكل غير صحيح الخطأ الأكثر شيوعًا هنا.
helm template my-release .تحقق سريع
تحتاج إلى تصيير قالب جزئي ومحاذاته بمسافة بادئة أسفل مفتاح labels. أي إجراء يعمل؟
مراجعة: template مقابل include
كلاهما يستدعي القوالب الجزئية، لكن include يعيد سلسلة نصية يمكن تمريرها عبر pipe، بينما يطبع template الناتج مباشرةً فقط. فضّل استخدام include مع nindent للحصول على YAML منسّق جيدًا. ✨
الأسئلة الشائعة
هل درس «إدراج Partials باستخدام template وinclude» مجاني؟
نعم — نص درس «إدراج Partials باستخدام template وinclude» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
ماذا ستتعلم في «إدراج Partials باستخدام template وinclude»؟
لماذا ينسّق include مع Pipelines بينما لا يفعل template ذلك تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟
لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «إدراج Partials باستخدام template وinclude»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟
نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- تعريف Partial باستخدام define
- إدراج Partials باستخدام template وinclude
- مساعدا Fullname وLabels القياسيان
- تمرير النطاق إلى قالب مسمّى