فهم composer.lock
تعلّموا لماذا يضمن composer.lock عمليات بناء قابلة لإعادة الإنتاج عبر البيئات المختلفة
فهم composer.lock درس مجاني في PHP Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في PHP Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة PHP Academy 4 دروس في المجموع.
الغرض من composer.lock
يسجّل composer.lock الإصدار الدقيق لكل حزمة مثبّتة، مما يضمن تثبيت الشيفرة نفسها لدى كل مطوّر وعلى كل خادم.
محتوياته
لكل حزمة: الاسم، والإصدار المحدد، وعنوان URL المصدر، وتجزئة التوزيع (قيمة التحقق)، وقيود require.
عمليات البناء القابلة لإعادة الإنتاج
عند تشغيل composer install على جهاز يحتوي على ملف قفل، يثبّت Composer بالضبط ما يسجله ملف القفل، متجاهلًا قيود الإصدارات.
هل يجب تثبيته في المستودع؟
ثبّت composer.lock دائمًا في المستودع الخاص بالتطبيقات. فهذا يضمن عمليات تثبيت قابلة لإعادة الإنتاج في جميع البيئات.
ملف القفل والأمان
يتضمن ملف القفل تجزئات SHA-256. يتحقق Composer من السلامة عند التنزيل، وتُرفض الحزم التي تم العبث بها.
متى يتغير؟
يتغير ملف القفل عند تشغيل composer update أو composer require أو composer remove. أما composer install العادي فلا يعدّله مطلقًا.
تحديث حزمة واحدة
حدّث إدخال حزمة واحدة فقط من دون المساس بالحزم الأخرى:
$ composer update vendor/package-nameالتعارض مع composer.json
إذا كان composer.lock غير متزامن مع composer.json، فسيصدر Composer تحذيرًا ويطلب منك تشغيل update.
متطلبات المنصة
يسجل ملف القفل أيضًا متطلبات إصدار PHP والإضافات التي تم التحقق منها وقت إنشاء القفل، مما يمنع مشكلات «يعمل على جهازي».
composer.lock في CI/CD
يجب أن تشغّل مسارات CI الأمر composer install --no-dev --optimize-autoloader: فهو يستخدم ملف القفل كما هو، ويتجاوز حزم التطوير، وينشئ خريطة أصناف محسّنة.
لا تعدّله يدويًا مطلقًا
ملف القفل عبارة عن JSON صالح، لكن لا تعدّله يدويًا مطلقًا، واستخدم أوامر Composer دائمًا.
الخلاصة
يمثل composer.lock المصدر الوحيد للحقيقة بشأن ما تم تثبيته. أودِعه في مستودع المشروع، واستخدم install في الإنتاج، ولا تستخدم update إلا عندما تريد إصدارات أحدث.
تحقق سريع
ماذا يفعل composer install عند وجود composer.lock؟
الأسئلة الشائعة
هل درس «فهم composer.lock» مجاني؟
نعم — نص درس «فهم composer.lock» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة PHP Academy، انتقل إلى CoddyKit PRO. تتضمن دورة PHP Academy 4 دروس في المجموع.
ماذا ستتعلم في «فهم composer.lock»؟
تعلّموا لماذا يضمن composer.lock عمليات بناء قابلة لإعادة الإنتاج عبر البيئات المختلفة تتمرن على PHP Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ PHP Academy؟
لا تُشترط خبرة سابقة. PHP Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «فهم composer.lock»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس PHP Academy هذا؟
نعم. كل درس في PHP Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- تثبيت Composer وتهيئته
- استلزام الحزم وتحديثها
- فهم composer.lock
- برامج Composer النصية والتحميل التلقائي